aboutsummaryrefslogtreecommitdiffstats
path: root/src/tools/vppapigen
diff options
context:
space:
mode:
authorOle Troan <ot@cisco.com>2021-02-17 13:26:53 +0100
committerNeale Ranns <neale@graphiant.com>2021-02-17 15:51:22 +0000
commitedc73fddbaa28eb29d068d3078f1c437781605ad (patch)
tree733e8cb0eccb0f137d4d3e4dbdadd24356c7dd2a /src/tools/vppapigen
parent384c72f630b7e8623a5122991d7c6abe6e870b38 (diff)
vat2: add sanity checking - coverity errors
Type: fix Signed-off-by: Ole Troan <ot@cisco.com> Change-Id: I3cd56690fe52402d4cfa9ea67f1de53d8d919dee
Diffstat (limited to 'src/tools/vppapigen')
-rw-r--r--src/tools/vppapigen/vppapigen_c.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/tools/vppapigen/vppapigen_c.py b/src/tools/vppapigen/vppapigen_c.py
index a83d361010e..ba083499852 100644
--- a/src/tools/vppapigen/vppapigen_c.py
+++ b/src/tools/vppapigen/vppapigen_c.py
@@ -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));