curl_json plugin: avoid accessing off the end of the avl_tree_s
authorJim Radford <radford@galvanix.com>
Sat, 10 Aug 2013 16:14:27 +0000 (09:14 -0700)
committerFlorian Forster <octo@collectd.org>
Mon, 19 Aug 2013 14:52:04 +0000 (16:52 +0200)
It's not written this way, but really we have a union { *key; *tree; }
which is differentiated by checking for the presence a magic field
which only exists in key.  This leads to accesses off the end of the
tree.  Putting the magic at start of the key avoids this.

Signed-off-by: Florian Forster <octo@collectd.org>
src/curl_json.c

index 89fce16..009f718 100644 (file)
@@ -48,10 +48,10 @@ struct cj_key_s;
 typedef struct cj_key_s cj_key_t;
 struct cj_key_s /* {{{ */
 {
+  unsigned long magic;
   char *path;
   char *type;
   char *instance;
-  unsigned long magic;
 };
 /* }}} */