From 5ae8be8b6af1a0fdf2fa26051a05d4c04d028849 Mon Sep 17 00:00:00 2001 From: Frank Sorenson Date: Wed, 15 Feb 2017 10:36:47 -0500 Subject: 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 Signed-off-by: Steve Dickson --- utils/gssd/gssd_proc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'utils/gssd/gssd_proc.c') 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="))) -- cgit