summaryrefslogtreecommitdiff
path: root/xkb/xkb.c
diff options
context:
space:
mode:
authorTomas Carnecky <tom@dbservice.com>2009-12-06 23:52:54 +0100
committerPeter Hutterer <peter.hutterer@who-t.net>2009-12-11 11:37:36 +1000
commit92d9cb7e1340b259294ba317ea3a7d18487498b5 (patch)
tree6ec02f892cec96ef0bd29c279a56c52e57a21edc /xkb/xkb.c
parentdf2635d4644d1fa2772ff58d8d34cdf788ece412 (diff)
XkbWriteCountedString(): return early if str is NULL
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@dbservice.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'xkb/xkb.c')
-rw-r--r--xkb/xkb.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/xkb/xkb.c b/xkb/xkb.c
index 98e879ddb..00ae29cd7 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) {