diff options
author | George Peter Staplin <gps@Georges-Workstation.local> | 2008-09-25 14:16:20 -0600 |
---|---|---|
committer | Jeremy Huddleston <jeremyhu@freedesktop.org> | 2008-09-26 12:31:33 -0700 |
commit | eb8be3e90a9c90a428696026d1e3b2152d7eefb4 (patch) | |
tree | d23e8e8ce00e70b73c1f6ff19fe2032ff33f8aa2 /hw/xquartz/pbproxy | |
parent | edfa3f8233fde490cb4255f21473684e96d595a3 (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().
(cherry picked from commit 6333d619e747c3b6bd3ba7557e35c0e5f6daa40f)
Diffstat (limited to 'hw/xquartz/pbproxy')
-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]); |