summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-pda/libimobiledevice/files/libimobiledevice-1.1.4-property_list_service-do-not-strip-non-ASCII-charact.patch')
-rw-r--r--app-pda/libimobiledevice/files/libimobiledevice-1.1.4-property_list_service-do-not-strip-non-ASCII-charact.patch27
1 files changed, 27 insertions, 0 deletions
diff --git a/app-pda/libimobiledevice/files/libimobiledevice-1.1.4-property_list_service-do-not-strip-non-ASCII-charact.patch b/app-pda/libimobiledevice/files/libimobiledevice-1.1.4-property_list_service-do-not-strip-non-ASCII-charact.patch
new file mode 100644
index 000000000000..7711839bb0a7
--- /dev/null
+++ b/app-pda/libimobiledevice/files/libimobiledevice-1.1.4-property_list_service-do-not-strip-non-ASCII-charact.patch
@@ -0,0 +1,27 @@
+From 060e3f2683ed2b0b08e1a31deb9608a99e193b4a Mon Sep 17 00:00:00 2001
+From: Christophe Fergeau <teuf@gnome.org>
+Date: Tue, 26 Jun 2012 00:03:30 +0200
+Subject: [PATCH] property_list_service: do not strip non-ASCII characters from
+ XML plists
+
+'content' is declared as char content[] so if char is signed, all characters with the high bit set will be negative so they will be < 0x20. This means the code will strip all non-ASCII (multi-byte) UTF-8 characters and replace them with spaces. This commit fixes it now by really only considering ASCII characters.
+---
+ src/property_list_service.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/property_list_service.c b/src/property_list_service.c
+index 8634864..c9a8edf 100644
+--- a/src/property_list_service.c
++++ b/src/property_list_service.c
+@@ -250,7 +250,7 @@ static property_list_service_error_t internal_plist_receive_timeout(property_lis
+ } else {
+ /* iOS 4.3+ hack: plist data might contain invalid characters, thus we convert those to spaces */
+ for (bytes = 0; bytes < pktlen-1; bytes++) {
+- if ((content[bytes] < 0x20) && (content[bytes] != 0x09) && (content[bytes] != 0x0a) && (content[bytes] != 0x0d))
++ if ((content[bytes] >= 0) && (content[bytes] < 0x20) && (content[bytes] != 0x09) && (content[bytes] != 0x0a) && (content[bytes] != 0x0d))
+ content[bytes] = 0x20;
+ }
+ plist_from_xml(content, pktlen, plist);
+--
+1.8.1.2
+