The parsing function for the local translation table can fail to convert the mac address and then jumps out of the function. This leaks the earlier allocated v_entry.
Signed-off-by: Sven Eckelmann sven@narfation.org
--- vis/vis.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/vis/vis.c b/vis/vis.c index 9031b27..a5ac664 100644 --- a/vis/vis.c +++ b/vis/vis.c @@ -213,8 +213,10 @@ static int parse_transtable_local(struct globals *globals) continue;
mac = str_to_mac(tptr); - if (!mac) + if (!mac) { + free(v_entry); continue; + }
memcpy(v_entry->v.mac, mac, ETH_ALEN); v_entry->v.ifindex = 255;