From: Ole Troan Date: Tue, 31 Aug 2021 12:21:03 +0000 (+0200) Subject: vat2: coverity errors in print_template X-Git-Tag: v22.02-rc0~79 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=6b3eeebacf8ee5c5be56b98c62a696f19e518e84;p=vpp.git vat2: coverity errors in print_template Dereferencing null pointer fix. Add checking of return values for all calls in print_template() Type: fix Signed-off-by: Ole Troan Change-Id: I00073b29ab2e76d5d06af9bd3f5ae2846de4d46d --- diff --git a/src/vat2/main.c b/src/vat2/main.c index b3606f3dd98..208e0c5d2c2 100644 --- a/src/vat2/main.c +++ b/src/vat2/main.c @@ -151,21 +151,36 @@ print_template (char *msgname) { uword *p = hash_get_mem (function_by_name, msgname); if (!p) - { - fprintf (stderr, "no such message: %s", msgname); - } + goto error; + cJSON *(*fp) (void *); fp = (void *) apifuncs[p[0]].tojson; - assert (fp); + if (!fp) + goto error; + void *scratch = malloc (2048); + if (!scratch) + goto error; + memset (scratch, 0, 2048); cJSON *t = fp (scratch); + if (!t) + goto error; free (scratch); char *output = cJSON_Print (t); + if (!output) + goto error; + cJSON_Delete (t); printf ("%s\n", output); free (output); + + return; + +error: + fprintf (stderr, "error printing template for: %s\n", msgname); } + static void dump_apis (void) {