diff options
author | George Peter Staplin <gps@Georges-Workstation.local> | 2008-09-25 14:16:20 -0600 |
---|---|---|
committer | George Peter Staplin <gps@Georges-Workstation.local> | 2008-09-25 14:16:20 -0600 |
commit | 6333d619e747c3b6bd3ba7557e35c0e5f6daa40f (patch) | |
tree | 5cb2a9eb18299d26d3d28702fd254abe307f175a | |
parent | 82a4dc5f0f31a7911ee1cce5d1b162077befa811 (diff) |
XQuartz: pbproxy: Fix another STRING bug.
Fix the usage of the NSString cStringUsingEncoding: - it doesn't NUL
terminate the string, which lead to a bus error. So, we use
lengthOfBytesUsingEncoding: to get the length in bytes instead of
strlen().
-rw-r--r-- | hw/xquartz/pbproxy/x-selection.m | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/hw/xquartz/pbproxy/x-selection.m b/hw/xquartz/pbproxy/x-selection.m index 14f69679d..b141db03b 100644 --- a/hw/xquartz/pbproxy/x-selection.m +++ b/hw/xquartz/pbproxy/x-selection.m @@ -528,7 +528,7 @@ get_property(Window win, Atom property, struct propdata *pdata, Bool delete, Ato pbtypes = [pb types]; if (pbtypes) { - long list[6]; + long list[6]; /* Don't forget to increase this if we handle more types! */ long count = 0; if ([pbtypes containsObject:NSStringPboardType]) @@ -619,7 +619,8 @@ get_property(Window win, Atom property, struct propdata *pdata, Bool delete, Ato { DB ("Latin-1\n"); bytes = [data cStringUsingEncoding:NSISOLatin1StringEncoding]; - length = strlen (bytes); + /*WARNING: bytes is not NUL-terminated. */ + length = [data lengthOfBytesUsingEncoding:NSISOLatin1StringEncoding]; } DB ("e->target %s\n", XGetAtomName (x_dpy, e->target)); @@ -760,7 +761,6 @@ get_property(Window win, Atom property, struct propdata *pdata, Bool delete, Ato [self send_reply:&reply]; return; } - /*FIXME Why is [bmimage retainCount] 2 here? */ DB ("bmimage retainCount after initWithData %u\n", [bmimage retainCount]); |