[PATCH] [xkb] XkbWriteCountedString(): return early if str is NULL

Tomas Carnecky tom at dbservice.com
Sun Dec 6 14:52:54 PST 2009


This avoids NULL from being passed to memcpy() later in the code. While
that wasn't an issue before - that value being NULL implied 'size == 0'
so memcpy() wouldn't try to dereference it - it made the code harder
to read and also confused clang.

Signed-off-by: Tomas Carnecky <tom at dbservice.com>
---
 xkb/xkb.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/xkb/xkb.c b/xkb/xkb.c
index 98e879d..00ae29c 100644
--- a/xkb/xkb.c
+++ b/xkb/xkb.c
@@ -4298,9 +4298,12 @@ ProcXkbSetNames(ClientPtr client)
 static char *
 XkbWriteCountedString(char *wire,char *str,Bool swap)
 {
-CARD16	len,*pLen;
+    CARD16 len,*pLen;
 
-    len= (str?strlen(str):0);
+    if (!str)
+        return wire;
+
+    len= strlen(str);
     pLen= (CARD16 *)wire;
     *pLen= len;
     if (swap) {
-- 
1.6.5.4




More information about the xorg-devel mailing list