ovs_events: fix potential NULL pointer dereference
authorMark Kavanagh <mark.b.kavanagh@intel.com>
Mon, 19 Feb 2018 13:06:36 +0000 (13:06 +0000)
committerCiara Loftus <ciara.loftus@intel.com>
Tue, 27 Mar 2018 09:46:41 +0000 (10:46 +0100)
A potentially-NULL pointer to ovs_events_iface_info_t is defererenced
by an invocation of sizeof(), within ovs_events_get_iface_info().

Move the offending line, such that it is executed after the
NULL-pointer check.

Fixes: f6adec45 ("ovs_events: Fix notification metadata garbage.")
Signed-off-by: Mark Kavanagh <mark.b.kavanagh@intel.com>
src/ovs_events.c

index bf457fd..ef59b4c 100644 (file)
@@ -404,14 +404,14 @@ static int ovs_events_get_iface_info(yajl_val jobject,
   if (!YAJL_IS_OBJECT(jobject))
     return -1;
 
-  /* zero the interface info structure */
-  memset(ifinfo, 0, sizeof(*ifinfo));
-
   /* try to find external_ids, name and link_state fields */
   jexternal_ids = ovs_utils_get_value_by_key(jobject, "external_ids");
   if (jexternal_ids == NULL || ifinfo == NULL)
     return -1;
 
+  /* zero the interface info structure */
+  memset(ifinfo, 0, sizeof(*ifinfo));
+
   /* get iface-id from external_ids field */
   jvalue = ovs_utils_get_map_value(jexternal_ids, "iface-id");
   if (jvalue != NULL && YAJL_IS_STRING(jvalue))