aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/programs/Xserver/dix
diff options
context:
space:
mode:
authorMike Gabriel <mike.gabriel@das-netzwerkteam.de>2017-02-27 13:52:29 +0000
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2017-03-02 10:49:15 +0100
commit9c3669c6b7ff19013b3684bb74d98ec3d121e329 (patch)
treef59b0c8ddd14dc414c952710b2010477107cde06 /nx-X11/programs/Xserver/dix
parentf42d36fb73e096113a948a04279b752689f157bc (diff)
downloadnx-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.c13
-rw-r--r--nx-X11/programs/Xserver/dix/dispatch.c2
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);