utils_ovs: fix potential NULL dereference
authorMark Kavanagh <mark.b.kavanagh@intel.com>
Mon, 19 Feb 2018 16:39:31 +0000 (16:39 +0000)
committerCiara Loftus <ciara.loftus@intel.com>
Tue, 27 Mar 2018 09:47:17 +0000 (10:47 +0100)
In ovs_utils_get_map_value(), YAJL_GET_ARRAY may return NULL,
which is subsequently dereferenced.

Ensure that the returned pointer is non-NULL before attempting
to dereference it.

Fixes: 12f6497 ("ovs_events: Add external ids as metadata")
Signed-off-by: Mark Kavanagh <mark.b.kavanagh@intel.com>
src/utils_ovs.c

index 088ed7d..a081fa9 100644 (file)
@@ -1368,6 +1368,9 @@ yajl_val ovs_utils_get_map_value(yajl_val jval, const char *key) {
     return NULL;
 
   /* try to find map value by map key */
+  if (YAJL_GET_ARRAY(array_values[1]) == NULL)
+    return NULL;
+
   map_len = YAJL_GET_ARRAY(array_values[1])->len;
   map_values = YAJL_GET_ARRAY(array_values[1])->values;
   for (size_t i = 0; i < map_len; i++) {