CoverityID: 442369 ("Memory - corruptions, double free")
On realloc() failure free 'ifaces' which may already differ from
*dev_list due to a previous realloc(). Also nalloc is now zero.
CoverityID: 442378 ("Resource Leak")
Ensure lnet_inet_enumerate() ifaces are freed.
Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Change-Id: I2d2762d86fcf070387b100115ad3a50bd2b2840b
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/56150
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Frank Sehr <fsehr@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Chris Horn <chris.horn@hpe.com>
} else {
LCONSOLE_ERROR("No local IP interfaces for ip2nets to match\n");
}
- return nip;
+ rc = nip;
+ goto out_free_addrs;
}
CFS_ALLOC_PTR_ARRAY(ipaddrs, nip);
tmp = krealloc(ifaces, *nalloc * sizeof(*tmp),
GFP_KERNEL);
if (!tmp) {
- kfree(*dev_list);
+ kfree(ifaces);
+ *nalloc = 0;
*dev_list = NULL;
return -ENOMEM;
}
tmp = krealloc(ifaces, *nalloc * sizeof(*tmp),
GFP_KERNEL);
if (!tmp) {
- kfree(*dev_list);
+ kfree(ifaces);
+ *nalloc = 0;
*dev_list = NULL;
return -ENOMEM;
}