X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fnginx.c;h=2de3633b41c6ffdc2feb1ffc64d329bca7092f9b;hb=9b626288aff81c68fe19210a58b4a32eeefde9d3;hp=4de59f3752b8827f28bf8885ec2f3c9073dd6c5d;hpb=4e6812d3e5073e5b4bd7eaef9f2539c8c9dd28a4;p=collectd.git diff --git a/src/nginx.c b/src/nginx.c index 4de59f37..2de3633b 100644 --- a/src/nginx.c +++ b/src/nginx.c @@ -52,7 +52,8 @@ static const char *config_keys[] = }; static int config_keys_num = STATIC_ARRAY_SIZE (config_keys); -static size_t nginx_curl_callback (void *buf, size_t size, size_t nmemb, void *stream) +static size_t nginx_curl_callback (void *buf, size_t size, size_t nmemb, + void __attribute__((unused)) *stream) { size_t len = size * nmemb; @@ -122,8 +123,9 @@ static int init (void) if (user != NULL) { - if (ssnprintf (credentials, sizeof (credentials), - "%s:%s", user, pass == NULL ? "" : pass) >= sizeof (credentials)) + int status = ssnprintf (credentials, sizeof (credentials), + "%s:%s", user, pass == NULL ? "" : pass); + if ((status < 0) || ((size_t) status >= sizeof (credentials))) { ERROR ("nginx plugin: Credentials would have been truncated."); return (-1); @@ -177,10 +179,9 @@ static void submit (char *type, char *inst, long long value) vl.values = values; vl.values_len = 1; - vl.time = time (NULL); - strcpy (vl.host, hostname_g); - strcpy (vl.plugin, "nginx"); - strcpy (vl.plugin_instance, ""); + sstrncpy (vl.host, hostname_g, sizeof (vl.host)); + sstrncpy (vl.plugin, "nginx", sizeof (vl.plugin)); + sstrncpy (vl.plugin_instance, "", sizeof (vl.plugin_instance)); sstrncpy (vl.type, type, sizeof (vl.type)); if (inst != NULL) @@ -196,6 +197,7 @@ static int nginx_read (void) char *ptr; char *lines[16]; int lines_num = 0; + char *saveptr; char *fields[16]; int fields_num; @@ -213,7 +215,8 @@ static int nginx_read (void) } ptr = nginx_buffer; - while ((lines[lines_num] = strtok (ptr, "\n\r")) != NULL) + saveptr = NULL; + while ((lines[lines_num] = strtok_r (ptr, "\n\r", &saveptr)) != NULL) { ptr = NULL; lines_num++;