X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fwrite_http.c;h=a7bb2e0f40600917685605df709a95bc7b98d885;hb=a9f509bacfda6be6882527a16563f260e4373246;hp=95132cf92f7bcd8d541bd53aa38a34b72de28c9a;hpb=88001af68cb86d0d95fa143b031359b10eddbe1f;p=collectd.git diff --git a/src/write_http.c b/src/write_http.c index 95132cf9..a7bb2e0f 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, @@ -813,13 +820,10 @@ static int wh_config_node (oconfig_item_t *ci) /* {{{ */ callback_name, cb->location); user_data_t user_data = { - .data = cb + .data = cb, + .free_func = wh_callback_free, }; - plugin_register_flush (callback_name, wh_flush, &user_data); - - user_data.free_func = wh_callback_free; - if (cb->send_metrics) { plugin_register_write (callback_name, wh_write, &user_data);