From: Sebastian Harl Date: Thu, 30 Nov 2006 11:02:46 +0000 (+0100) Subject: email plugin: Use strtok_r() instead of strtok(). X-Git-Tag: collectd-3.11.0~39^3 X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=578f62451f20db8771ada96759918b53a5a025c4;p=collectd.git 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 --- 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]);