From 6b3eeebacf8ee5c5be56b98c62a696f19e518e84 Mon Sep 17 00:00:00 2001 From: Ole Troan Date: Tue, 31 Aug 2021 14:21:03 +0200 Subject: 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 --- src/vat2/main.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'src/vat2') 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) { -- cgit 1.2.3-korg