utils_ovs: fix potential NULL
authorKavanagh, Mark B <mark.b.kavanagh@intel.com>
Mon, 26 Feb 2018 17:08:31 +0000 (17:08 +0000)
committerCiara Loftus <ciara.loftus@intel.com>
Tue, 27 Mar 2018 11:44:47 +0000 (12:44 +0100)
In ovs_utils_get_map_value(), YAJL_GET_ARRAY may return a NULL
pointer, which is subsequently dereferenced. Ensure that the
pointer is non-NULL before proceeding.

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

index 650a64c..f98841c 100644 (file)
@@ -1375,7 +1375,7 @@ yajl_val ovs_utils_get_map_value(yajl_val jval, const char *key) {
   map_values = YAJL_GET_ARRAY(array_values[1])->values;
   for (size_t i = 0; i < map_len; i++) {
     /* check YAJL array */
-    if (!YAJL_IS_ARRAY(map_values[i]))
+    if (!YAJL_IS_ARRAY(map_values[i]) || YAJL_GET_ARRAY(map_values[i]) == NULL)
       break;
 
     /* check a database pair value (2-element, first one represents a key