vat2: add sanity checking - coverity errors 22/31322/2
authorOle Troan <ot@cisco.com>
Wed, 17 Feb 2021 12:26:53 +0000 (13:26 +0100)
committerNeale Ranns <neale@graphiant.com>
Wed, 17 Feb 2021 15:51:22 +0000 (15:51 +0000)
Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I3cd56690fe52402d4cfa9ea67f1de53d8d919dee

MAINTAINERS
src/tools/vppapigen/vppapigen_c.py

index 35bdaa3..3f100e7 100644 (file)
@@ -733,6 +733,11 @@ I: cjson
 M:     Ole Troan <ot@cisco.com>
 F:     src/vppinfra/cJSON.[ch]
 
+VAT2
+I:     vat2
+M:     Ole Troan <ot@cisco.com>
+F:     src/vat2/
+
 THE REST
 I:     misc
 M:     vpp-dev Mailing List <vpp-dev@fd.io>
index a83d361..ba08349 100644 (file)
@@ -1534,6 +1534,7 @@ api_{n} (cJSON *o)
   char *p;
   int l;
   vac_read(&p, &l, 5); // XXX: Fix timeout
+  if (p == 0 || l == 0) return 0;
     // XXX Will fail in case of event received. Do loop
   if (ntohs(*((u16 *)p)) != vac_get_msg_index(VL_API_{R}_CRC)) {{
     fprintf(stderr, "Mismatched reply\\n");
@@ -1573,6 +1574,10 @@ api_{n} (cJSON *o)
     char *p;
     int l;
     vac_read(&p, &l, 5); // XXX: Fix timeout
+    if (p == 0 || l == 0) {{
+      cJSON_free(reply);
+      return 0;
+    }}
 
     /* Message can be one of [_details, control_ping_reply
      * or unrelated event]
@@ -1583,6 +1588,10 @@ api_{n} (cJSON *o)
     }}
 
     if (reply_msg_id == details_msg_id) {{
+        if (l < sizeof(vl_api_{r}_t)) {{
+            cJSON_free(reply);
+            return 0;
+        }}
         vl_api_{r}_t *rmp = (vl_api_{r}_t *)p;
         vl_api_{r}_t_endian(rmp);
         cJSON_AddItemToArray(reply, vl_api_{r}_t_tojson(rmp));