X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fcurl_json.c;h=4dab1abd8f11928fb00585550e3132fd92c9c05a;hb=c76419c0cf983f1ecd3d36aa236cc4e3f9cff733;hp=582443186876a1d0b6a518532c47fc441972a699;hpb=a302b46b0f8b178ea6e360e21a525273598bf652;p=collectd.git diff --git a/src/curl_json.c b/src/curl_json.c index 58244318..4dab1abd 100644 --- a/src/curl_json.c +++ b/src/curl_json.c @@ -144,6 +144,9 @@ static int cj_get_type (cj_key_t *key) { const data_set_t *ds; + if ((key == NULL) || !CJ_IS_KEY (key)) + return -EINVAL; + ds = plugin_get_ds (key->type); if (ds == NULL) { @@ -227,12 +230,15 @@ static int cj_cb_number (void *ctx, buffer[sizeof (buffer) - 1] = 0; if ((key == NULL) || !CJ_IS_KEY (key)) { - if (key != NULL && !db->state[db->depth].in_array/*can be inhomogeneous*/) + if (key != NULL && !db->state[db->depth].in_array/*can be inhomogeneous*/) { NOTICE ("curl_json plugin: Found \"%s\", but the configuration expects" " a map.", buffer); + return (CJ_CB_CONTINUE); + } + cj_cb_inc_array_index (ctx, /* update_key = */ 1); key = db->state[db->depth].key; - if (key == NULL) { + if ((key == NULL) || !CJ_IS_KEY (key)) { return (CJ_CB_CONTINUE); } }