os: Use strtok instead of xstrtokenize in ComputeLocalClient

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

Reviewed-by: Adam Jackson <ajax@redhat.com>
(cherry picked from commit e156c0ccb5)
This commit is contained in:
Michel Dänzer 2016-03-30 18:23:04 +09:00 committed by Adam Jackson
parent 3c4cead499
commit 42a74080ff

View file

@ -1132,19 +1132,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;