Treewide: replace ssnprintf with snprintf
[collectd.git] / src / write_prometheus.c
index 6dee98a..325a6c6 100644 (file)
@@ -159,7 +159,7 @@ static char *format_labels(char *buffer, size_t buffer_size,
    * know that they are sane. */
   for (size_t i = 0; i < m->n_label; i++) {
     char value[LABEL_VALUE_SIZE];
-    ssnprintf(labels[i], LABEL_BUFFER_SIZE, "%s=\"%s\"", m->label[i]->name,
+    snprintf(labels[i], LABEL_BUFFER_SIZE, "%s=\"%s\"", m->label[i]->name,
               escape_label_value(value, sizeof(value), m->label[i]->value));
   }
 
@@ -178,10 +178,10 @@ static void format_text(ProtobufCBuffer *buffer) {
   while (c_avl_iterator_next(iter, (void *)&unused_name, (void *)&fam) == 0) {
     char line[1024]; /* 4x DATA_MAX_NAME_LEN? */
 
-    ssnprintf(line, sizeof(line), "# HELP %s %s\n", fam->name, fam->help);
+    snprintf(line, sizeof(line), "# HELP %s %s\n", fam->name, fam->help);
     buffer->append(buffer, strlen(line), (uint8_t *)line);
 
-    ssnprintf(line, sizeof(line), "# TYPE %s %s\n", fam->name,
+    snprintf(line, sizeof(line), "# TYPE %s %s\n", fam->name,
               (fam->type == IO__PROMETHEUS__CLIENT__METRIC_TYPE__GAUGE)
                   ? "gauge"
                   : "counter");
@@ -194,15 +194,15 @@ static void format_text(ProtobufCBuffer *buffer) {
 
       char timestamp_ms[24] = "";
       if (m->has_timestamp_ms)
-        ssnprintf(timestamp_ms, sizeof(timestamp_ms), " %" PRIi64,
+        snprintf(timestamp_ms, sizeof(timestamp_ms), " %" PRIi64,
                   m->timestamp_ms);
 
       if (fam->type == IO__PROMETHEUS__CLIENT__METRIC_TYPE__GAUGE)
-        ssnprintf(line, sizeof(line), "%s{%s} " GAUGE_FORMAT "%s\n", fam->name,
+        snprintf(line, sizeof(line), "%s{%s} " GAUGE_FORMAT "%s\n", fam->name,
                   format_labels(labels, sizeof(labels), m), m->gauge->value,
                   timestamp_ms);
       else /* if (fam->type == IO__PROMETHEUS__CLIENT__METRIC_TYPE__COUNTER) */
-        ssnprintf(line, sizeof(line), "%s{%s} %.0f%s\n", fam->name,
+        snprintf(line, sizeof(line), "%s{%s} %.0f%s\n", fam->name,
                   format_labels(labels, sizeof(labels), m), m->counter->value,
                   timestamp_ms);
 
@@ -212,7 +212,7 @@ static void format_text(ProtobufCBuffer *buffer) {
   c_avl_iterator_destroy(iter);
 
   char server[1024];
-  ssnprintf(server, sizeof(server), "\n# collectd/write_prometheus %s at %s\n",
+  snprintf(server, sizeof(server), "\n# collectd/write_prometheus %s at %s\n",
             PACKAGE_VERSION, hostname_g);
   buffer->append(buffer, strlen(server), (uint8_t *)server);
 
@@ -546,9 +546,14 @@ metric_family_delete_metric(Io__Prometheus__Client__MetricFamily *fam,
             ((fam->n_metric - 1) - i) * sizeof(fam->metric[i]));
   fam->n_metric--;
 
+  if (fam->n_metric == 0) {
+    sfree(fam->metric);
+    return 0;
+  }
+
   Io__Prometheus__Client__Metric **tmp =
       realloc(fam->metric, fam->n_metric * sizeof(*fam->metric));
-  if ((tmp != NULL) || (fam->n_metric == 0))
+  if (tmp != NULL)
     fam->metric = tmp;
 
   return 0;
@@ -594,8 +599,8 @@ static int metric_family_update(Io__Prometheus__Client__MetricFamily *fam,
   if (m == NULL)
     return -1;
 
-  return metric_update(m, vl->values[ds_index], ds->ds[ds_index].type, vl->time,
-                       vl->interval);
+  return metric_update(m, vl->values[ds_index], ds->ds[ds_index].type,
+                       vl->time, vl->interval);
 }
 
 /* metric_family_destroy frees the memory used by a metric family. */
@@ -626,7 +631,7 @@ metric_family_create(char *name, data_set_t const *ds, value_list_t const *vl,
   msg->name = name;
 
   char help[1024];
-  ssnprintf(
+  snprintf(
       help, sizeof(help),
       "write_prometheus plugin: '%s' Type: '%s', Dstype: '%s', Dsname: '%s'",
       vl->plugin, vl->type, DS_TYPE_TO_STRING(ds->ds[ds_index].type),
@@ -694,8 +699,10 @@ metric_family_get(data_set_t const *ds, value_list_t const *vl, size_t ds_index,
     return fam;
   }
 
-  if (!allocate)
+  if (!allocate) {
+    sfree(name);
     return NULL;
+  }
 
   fam = metric_family_create(name, ds, vl, ds_index);
   if (fam == NULL) {