[xserver] os: Use strtok instead of xstrtokenize in ComputeLocalClient

Submitted by Michel Dänzer on March 30, 2016, 9:24 a.m.

Details

Message ID 1459329873-32365-1-git-send-email-michel@daenzer.net
State Accepted
Commit e156c0ccb530897d3a428255bd5585f7ea7b9b41
Headers show
Series "os: Use strtok instead of xstrtokenize in ComputeLocalClient" ( rev: 1 ) in X.org (DEPRECATED - USE GITLAB)

Not browsing as part of any series.

Commit Message

Michel Dänzer March 30, 2016, 9:24 a.m.
From: Michel Dänzer <michel.daenzer@amd.com>

Fixes leaking the memory pointed to by the members of the array returned
by xstrtokenize.

Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
---
 os/access.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

Patch hide | download patch | download mbox

diff --git a/os/access.c b/os/access.c
index 58f95a9..8828e08 100644
--- a/os/access.c
+++ b/os/access.c
@@ -1131,19 +1131,20 @@  ComputeLocalClient(ClientPtr client)
      * is forwarded from another host via SSH
      */
     if (cmdname) {
-        char **cmd;
+        char *cmd = strdup(cmdname);
         Bool ret;
 
         /* Cut off any colon and whatever comes after it, see
          * https://lists.freedesktop.org/archives/xorg-devel/2015-December/048164.html
          */
-        cmd = xstrtokenize(cmdname, ":");
+        cmd = strtok(cmd, ":");
 
 #if !defined(WIN32) || defined(__CYGWIN__)
-        cmd[0] = basename(cmd[0]);
+        ret = strcmp(basename(cmd), "ssh") != 0;
+#else
+        ret = strcmp(cmd, "ssh") != 0;
 #endif
 
-        ret = strcmp(cmd[0], "ssh") != 0;
         free(cmd);
 
         return ret;