ceph plugin: Assert that the strings on the stack are non-NULL.
authorFlorian Forster <octo@collectd.org>
Tue, 16 Aug 2016 05:09:45 +0000 (07:09 +0200)
committerFlorian Forster <octo@collectd.org>
Tue, 16 Aug 2016 05:09:45 +0000 (07:09 +0200)
The static analyzer is whining about passing NULLs to strcmp().

src/ceph.c

index 458112a..e6d3767 100644 (file)
@@ -297,6 +297,11 @@ ceph_cb_number(void *ctx, const char *number_val, yajl_len_t number_len)
     {
         latency_type = 1;
 
+        /* depth >= 2  =>  (stack[-1] != NULL && stack[-2] != NULL) */
+        assert ((state->depth < 2)
+                || ((state->stack[state->depth - 1] != NULL)
+                    && (state->stack[state->depth - 2] != NULL)));
+
         /* Super-special case for filestore.journal_wr_bytes.avgcount: For
          * some reason, Ceph schema encodes this as a count/sum pair while all
          * other "Bytes" data (excluding used/capacity bytes for OSD space) uses