projects
/
collectd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
contrib/docker: add LD_PRELOAD wrapper to fopen/open/opendir syscalls
[collectd.git]
/
src
/
write_http.c
diff --git
a/src/write_http.c
b/src/write_http.c
index
d8d8c34
..
b3baa55
100644
(file)
--- 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;
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;
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);
}
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,
/* `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;
{
wh_callback_t *cb;
int buffer_size = 0;
- user_data_t user_data = { 0 };
char callback_name[DATA_MAX_NAME_LEN];
int status = 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);
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)
{
if (cb->send_metrics)
{