From 578f62451f20db8771ada96759918b53a5a025c4 Mon Sep 17 00:00:00 2001 From: Sebastian Harl Date: Thu, 30 Nov 2006 12:02:46 +0100 Subject: [PATCH] email plugin: Use strtok_r() instead of strtok(). strtok() internally uses a static buffer and thus is not thread-safe. Signed-off-by: Sebastian Harl --- src/email.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/email.c b/src/email.c index 27370aee..37194fb1 100644 --- a/src/email.c +++ b/src/email.c @@ -361,8 +361,9 @@ static void *collect (void *arg) } if ('e' == line[0]) { /* e:: */ - char *type = strtok (line + 2, ":"); - char *tmp = strtok (NULL, ":"); + char *ptr = NULL; + char *type = strtok_r (line + 2, ":", &ptr); + char *tmp = strtok_r (NULL, ":", &ptr); int bytes = 0; if (NULL == tmp) { @@ -389,13 +390,14 @@ static void *collect (void *arg) pthread_mutex_unlock (&score_mutex); } else if ('c' == line[0]) { /* c:[,,...] */ - char *type = strtok (line + 2, ","); + char *ptr = NULL; + char *type = strtok_r (line + 2, ",", &ptr); do { pthread_mutex_lock (&check_mutex); type_list_incr (&check, type, 1); pthread_mutex_unlock (&check_mutex); - } while (NULL != (type = strtok (NULL, ","))); + } while (NULL != (type = strtok_r (NULL, ",", &ptr))); } else { syslog (LOG_ERR, "email: unknown type '%c'", line[0]); -- 2.11.0