Merge branch 'collectd-5.6' into collectd-5.7
[collectd.git] / src / dbi.c
index 8b383f1..0e5c5de 100644 (file)
--- a/src/dbi.c
+++ b/src/dbi.c
@@ -186,7 +186,10 @@ static void cdbi_database_free(cdbi_database_t *db) /* {{{ */
   if (db->q_prep_areas)
     for (size_t i = 0; i < db->queries_num; ++i)
       udb_query_delete_preparation_area(db->q_prep_areas[i]);
-  free(db->q_prep_areas);
+  sfree(db->q_prep_areas);
+  /* N.B.: db->queries references objects "owned" by the global queries
+   * variable. Free the array here, but not the content. */
+  sfree(db->queries);
 
   sfree(db);
 } /* }}} void cdbi_database_free */
@@ -354,23 +357,20 @@ static int cdbi_config_add_database(oconfig_item_t *ci) /* {{{ */
       ERROR("dbi plugin: realloc failed");
       status = -1;
     } else {
-      char *name = NULL;
-
       databases = temp;
       databases[databases_num] = db;
       databases_num++;
 
-      name = ssnprintf_alloc("dbi:%s", db->name);
-
-      user_data_t ud = {.data = db};
-
+      char *name = ssnprintf_alloc("dbi:%s", db->name);
       plugin_register_complex_read(
           /* group = */ NULL,
           /* name = */ name ? name : db->name,
           /* callback = */ cdbi_read_database,
           /* interval = */ (db->interval > 0) ? db->interval : 0,
-          /* user_data = */ &ud);
-      free(name);
+          &(user_data_t){
+              .data = db,
+          });
+      sfree(name);
     }
   }
 
@@ -411,13 +411,13 @@ static int cdbi_init(void) /* {{{ */
 
   if (queries_num == 0) {
     ERROR("dbi plugin: No <Query> blocks have been found. Without them, "
-          "this plugin can't do anything useful, so we will returns an error.");
+          "this plugin can't do anything useful, so we will return an error.");
     return (-1);
   }
 
   if (databases_num == 0) {
     ERROR("dbi plugin: No <Database> blocks have been found. Without them, "
-          "this plugin can't do anything useful, so we will returns an error.");
+          "this plugin can't do anything useful, so we will return an error.");
     return (-1);
   }