summaryrefslogtreecommitdiffstats
path: root/utils/gssd/gssd_proc.c
diff options
context:
space:
mode:
authorFrank Sorenson <sorenson@redhat.com>2017-02-15 10:36:47 -0500
committerSteve Dickson <steved@redhat.com>2017-02-15 10:41:59 -0500
commit5ae8be8b6af1a0fdf2fa26051a05d4c04d028849 (patch)
tree020e776e0f42941b339e095e5e4ef0edc1843d53 /utils/gssd/gssd_proc.c
parent40346e1503c3d52b43ed3fe2bf56742ac5454553 (diff)
downloadnfs-utils-5ae8be8b6af1a0fdf2fa26051a05d4c04d028849.tar.gz
nfs-utils-5ae8be8b6af1a0fdf2fa26051a05d4c04d028849.tar.xz
nfs-utils-5ae8be8b6af1a0fdf2fa26051a05d4c04d028849.zip
gssd: replace non-thread-safe strtok with strsep
gssd uses the non-thread-safe strtok() function, which can lead to incorrect program behavior. Replace strtok() with the thread-safe strsep(). Signed-off-by: Frank Sorenson <sorenson@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
Diffstat (limited to 'utils/gssd/gssd_proc.c')
-rw-r--r--utils/gssd/gssd_proc.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/utils/gssd/gssd_proc.c b/utils/gssd/gssd_proc.c
index d74d372..30c6ace 100644
--- a/utils/gssd/gssd_proc.c
+++ b/utils/gssd/gssd_proc.c
@@ -729,10 +729,11 @@ handle_gssd_upcall(struct clnt_upcall_info *info)
char *target = NULL;
char *service = NULL;
char *enctypes = NULL;
+ char *pbuf = info->lbuf;
printerr(2, "\n%s: '%s' (%s)\n", __func__, info->lbuf, clp->relpath);
- for (p = strtok(info->lbuf, " "); p; p = strtok(NULL, " ")) {
+ while ((p = strsep(&pbuf, " "))) {
if (!strncmp(p, "mech=", strlen("mech=")))
mech = p + strlen("mech=");
else if (!strncmp(p, "uid=", strlen("uid=")))