diff options
author | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2017-02-27 13:52:29 +0000 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2017-03-02 10:49:15 +0100 |
commit | 9c3669c6b7ff19013b3684bb74d98ec3d121e329 (patch) | |
tree | f59b0c8ddd14dc414c952710b2010477107cde06 /nx-X11/programs/Xserver/dix | |
parent | f42d36fb73e096113a948a04279b752689f157bc (diff) | |
download | nx-libs-9c3669c6b7ff19013b3684bb74d98ec3d121e329.tar.gz nx-libs-9c3669c6b7ff19013b3684bb74d98ec3d121e329.tar.bz2 nx-libs-9c3669c6b7ff19013b3684bb74d98ec3d121e329.zip |
Xserver/dix/atom.c (et al.): Constify atom name strings.
Inspired by X.org commits:
commit 08093c25a91c07ab8af7cece9bba738b827cfd1b
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Mon Oct 24 23:16:30 2011 -0700
Convert some malloc + strncpy pairs into strndup calls
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
commit 816b79dd061e9839cec94a4986a7820b70ca8a7f
Author: Mikhail Gusarov <dottedmag@dottedmag.net>
Date: Thu May 13 03:45:21 2010 +0700
Remove useless casts
Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
This PR ships a tiny change in MakeAtom, that we adopted.
We did not adopt the full commit.
commit 5623c27700b7b23a8dbbd8c8f45e5d4fa0c667e3
Author: Alan Coopersmith <alan.coopersmith@sun.com>
Date: Mon Feb 2 19:25:14 2009 -0800
Constify atom name strings
Changes MakeAtom to take a const char * and NameForAtom to return them,
since many callers pass pointers to constant strings stored in read-only
ELF sections. Updates in-tree callers as necessary to clear const
mismatch warnings introduced by this change.
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
Acked-by: Peter Hutterer <peter.hutterer@who-t.net>
Backported-to-NX-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
Diffstat (limited to 'nx-X11/programs/Xserver/dix')
-rw-r--r-- | nx-X11/programs/Xserver/dix/atom.c | 13 | ||||
-rw-r--r-- | nx-X11/programs/Xserver/dix/dispatch.c | 2 |
2 files changed, 7 insertions, 8 deletions
diff --git a/nx-X11/programs/Xserver/dix/atom.c b/nx-X11/programs/Xserver/dix/atom.c index fdacb2a6b..d569c2314 100644 --- a/nx-X11/programs/Xserver/dix/atom.c +++ b/nx-X11/programs/Xserver/dix/atom.c @@ -62,7 +62,7 @@ typedef struct _Node { struct _Node *left, *right; Atom a; unsigned int fingerPrint; - char *string; + const char *string; } NodeRec, *NodePtr; static Atom lastAtom = None; @@ -116,13 +116,11 @@ MakeAtom(const char *string, unsigned len, Bool makeit) } else { - nd->string = (char *) malloc(len + 1); + nd->string = strndup(string, len); if (!nd->string) { free(nd); return BAD_RESOURCE; } - strncpy(nd->string, string, (int)len); - nd->string[len] = 0; } if ((lastAtom + 1) >= tableLength) { NodePtr *table; @@ -131,7 +129,8 @@ MakeAtom(const char *string, unsigned len, Bool makeit) tableLength * (2 * sizeof(NodePtr))); if (!table) { if (nd->string != string) - free(nd->string); + /* nd->string has been strdup'ed */ + free((char *)nd->string); free(nd); return BAD_RESOURCE; } @@ -155,7 +154,7 @@ ValidAtom(Atom atom) return (atom != None) && (atom <= lastAtom); } -char * +const char * NameForAtom(Atom atom) { NodePtr node; @@ -178,7 +177,7 @@ FreeAtom(NodePtr patom) if(patom->right) FreeAtom(patom->right); if (patom->a > XA_LAST_PREDEFINED) - free(patom->string); + free((char *)patom->string); free(patom); } diff --git a/nx-X11/programs/Xserver/dix/dispatch.c b/nx-X11/programs/Xserver/dix/dispatch.c index 044ba1c4b..8313d5bff 100644 --- a/nx-X11/programs/Xserver/dix/dispatch.c +++ b/nx-X11/programs/Xserver/dix/dispatch.c @@ -886,7 +886,7 @@ ProcInternAtom(register ClientPtr client) int ProcGetAtomName(register ClientPtr client) { - char *str; + const char *str; xGetAtomNameReply reply; int len; REQUEST(xResourceReq); |