summaryrefslogtreecommitdiff
path: root/hw/xquartz/pbproxy
diff options
context:
space:
mode:
authorGeorge Peter Staplin <gps@Georges-Workstation.local>2008-09-25 14:16:20 -0600
committerJeremy Huddleston <jeremyhu@freedesktop.org>2008-09-26 12:31:33 -0700
commiteb8be3e90a9c90a428696026d1e3b2152d7eefb4 (patch)
treed23e8e8ce00e70b73c1f6ff19fe2032ff33f8aa2 /hw/xquartz/pbproxy
parentedfa3f8233fde490cb4255f21473684e96d595a3 (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.m6
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]);