src/common.c: parse_identifier_vl: Don't pass NULL to sstrncpy().
[collectd.git] / src / common.c
index 1c80e8f..142d797 100644 (file)
@@ -941,9 +941,13 @@ int parse_identifier_vl (const char *str, value_list_t *vl) /* {{{ */
 
        sstrncpy (vl->host, host, sizeof (host));
        sstrncpy (vl->plugin, plugin, sizeof (plugin));
-       sstrncpy (vl->plugin_instance, plugin_instance, sizeof (plugin_instance));
+       sstrncpy (vl->plugin_instance,
+                       (plugin_instance != NULL) ? plugin_instance : "",
+                       sizeof (plugin_instance));
        sstrncpy (vl->type, type, sizeof (type));
-       sstrncpy (vl->type_instance, type_instance, sizeof (type_instance));
+       sstrncpy (vl->type_instance,
+                       (type_instance != NULL) ? type_instance : "",
+                       sizeof (type_instance));
 
        return (0);
 } /* }}} int parse_identifier_vl */
@@ -963,11 +967,11 @@ int parse_value (const char *value, value_t *ret_value, int ds_type)
       break;
 
     case DS_TYPE_DERIVE:
-      ret_value->counter = (derive_t) strtoll (value, &endptr, 0);
+      ret_value->derive = (derive_t) strtoll (value, &endptr, 0);
       break;
 
     case DS_TYPE_ABSOLUTE:
-      ret_value->counter = (absolute_t) strtoull (value, &endptr, 0);
+      ret_value->absolute = (absolute_t) strtoull (value, &endptr, 0);
       break;
 
     default: