X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Femail.c;h=81ae29c3035269513105e87a1193bdc205b9808a;hb=daebbbee0ac53d39a0486aeb8c41fd358f46ed82;hp=042c0777faa6daa208046027c418787a81703f97;hpb=0657d95eaa686d64efe6bbccda346ebd6467bd0b;p=collectd.git diff --git a/src/email.c b/src/email.c index 042c0777..81ae29c3 100644 --- a/src/email.c +++ b/src/email.c @@ -50,7 +50,6 @@ # include #endif -#include #include #include @@ -306,8 +305,11 @@ static void *collect (void *arg) break; continue; } + if (len < 3) { /* [a-z] ':' '\n' */ + continue; + } - line[len - 1] = '\0'; + line[len - 1] = 0; log_debug ("collect: line = '%s'", line); @@ -330,12 +332,12 @@ static void *collect (void *arg) bytes = atoi (tmp); pthread_mutex_lock (&count_mutex); - type_list_incr (&list_count, type, 1); + type_list_incr (&list_count, type, /* increment = */ 1); pthread_mutex_unlock (&count_mutex); if (bytes > 0) { pthread_mutex_lock (&size_mutex); - type_list_incr (&list_size, type, bytes); + type_list_incr (&list_size, type, /* increment = */ bytes); pthread_mutex_unlock (&size_mutex); } } @@ -347,14 +349,17 @@ static void *collect (void *arg) pthread_mutex_unlock (&score_mutex); } else if ('c' == line[0]) { /* c:[,,...] */ - char *ptr = NULL; - char *type = strtok_r (line + 2, ",", &ptr); - - do { - pthread_mutex_lock (&check_mutex); - type_list_incr (&list_check, type, 1); - pthread_mutex_unlock (&check_mutex); - } while (NULL != (type = strtok_r (NULL, ",", &ptr))); + char *dummy = line + 2; + char *endptr = NULL; + char *type; + + pthread_mutex_lock (&check_mutex); + while ((type = strtok_r (dummy, ",", &endptr)) != NULL) + { + dummy = NULL; + type_list_incr (&list_check, type, /* increment = */ 1); + } + pthread_mutex_unlock (&check_mutex); } else { log_err ("collect: unknown type '%c'", line[0]); @@ -384,8 +389,8 @@ static void *open_connection (void __attribute__((unused)) *arg) { struct sockaddr_un addr; - char *path = (NULL == sock_file) ? SOCK_PATH : sock_file; - char *group = (NULL == sock_group) ? COLLECTD_GRP_NAME : sock_group; + const char *path = (NULL == sock_file) ? SOCK_PATH : sock_file; + const char *group = (NULL == sock_group) ? COLLECTD_GRP_NAME : sock_group; /* create UNIX socket */ errno = 0; @@ -533,7 +538,7 @@ static void *open_connection (void __attribute__((unused)) *arg) } connection = malloc (sizeof (*connection)); - if (connection != NULL) + if (connection == NULL) { close (remote); continue;