From: Phil Sutter Date: Tue, 10 Jan 2023 21:36:58 +0000 (+0100) Subject: netlink: Fix for potential NULL-pointer deref X-Git-Tag: v1.0.7~35 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=927d5674e7bf656428f97c54c9171006e8c3c75e;p=thirdparty%2Fnftables.git netlink: Fix for potential NULL-pointer deref If memory allocation fails, calloc() returns NULL which was not checked for. The code seems to expect zero array size though, so simply replacing this call by one of the x*calloc() ones won't work. So guard the call also by a check for 'len'. Fixes: db0697ce7f602 ("src: support for flowtable listing") Signed-off-by: Phil Sutter --- diff --git a/src/netlink.c b/src/netlink.c index 51de9c9c..efae1251 100644 --- a/src/netlink.c +++ b/src/netlink.c @@ -1790,7 +1790,8 @@ netlink_delinearize_flowtable(struct netlink_ctx *ctx, while (dev_array[len]) len++; - flowtable->dev_array = calloc(1, len * sizeof(char *)); + if (len) + flowtable->dev_array = xmalloc(len * sizeof(char *)); for (i = 0; i < len; i++) flowtable->dev_array[i] = xstrdup(dev_array[i]);