X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fwrite_http.c;h=b3baa555d2393fb7f3d48903afb5cdd4528a7c5b;hb=c76419c0cf983f1ecd3d36aa236cc4e3f9cff733;hp=d8d8c34e60f9fd0e1f2dcdb709ea63d65e61766d;hpb=adb1603b1fc09b3f19924cc9e5c8949603dae2d4;p=collectd.git diff --git a/src/write_http.c b/src/write_http.c index d8d8c34e..b3baa555 100644 --- a/src/write_http.c +++ b/src/write_http.c @@ -362,7 +362,11 @@ static int wh_write_command (const data_set_t *ds, const value_list_t *vl, /* {{ int status; - if (0 != strcmp (ds->type, vl->type)) { + /* sanity checks, primarily to make static analyzers happy. */ + if ((cb == NULL) || (cb->send_buffer == NULL)) + return -1; + + if (strcmp (ds->type, vl->type) != 0) { ERROR ("write_http plugin: DS type does not match " "value list type"); return -1; @@ -415,6 +419,9 @@ static int wh_write_command (const data_set_t *ds, const value_list_t *vl, /* {{ } assert (command_len < cb->send_buffer_free); + /* Make scan-build happy. */ + assert (cb->send_buffer != NULL); + /* `command_len + 1' because `command_len' does not include the * trailing null byte. Neither does `send_buffer_fill'. */ memcpy (cb->send_buffer + cb->send_buffer_fill, @@ -649,7 +656,6 @@ static int wh_config_node (oconfig_item_t *ci) /* {{{ */ { wh_callback_t *cb; int buffer_size = 0; - user_data_t user_data = { 0 }; char callback_name[DATA_MAX_NAME_LEN]; int status = 0; @@ -813,10 +819,10 @@ static int wh_config_node (oconfig_item_t *ci) /* {{{ */ DEBUG ("write_http: Registering write callback '%s' with URL '%s'", callback_name, cb->location); - user_data.data = cb; - plugin_register_flush (callback_name, wh_flush, &user_data); - - user_data.free_func = wh_callback_free; + user_data_t user_data = { + .data = cb, + .free_func = wh_callback_free, + }; if (cb->send_metrics) {