From: Donald Sharp Date: Sat, 10 Jun 2017 20:39:41 +0000 (-0400) Subject: zebra: Fix memory leak X-Git-Tag: reindent-master-before~76^2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=d722f26e09086bd3c7c2c37bd93e38fdd599954d;p=matthieu%2Ffrr.git zebra: Fix memory leak Signed-off-by: Donald Sharp --- diff --git a/zebra/zebra_vty.c b/zebra/zebra_vty.c index 3eb6e85a4c..8b5af69bff 100644 --- a/zebra/zebra_vty.c +++ b/zebra/zebra_vty.c @@ -3098,6 +3098,8 @@ DEFUN (ip_zebra_import_table_distance, int distance = ZEBRA_TABLE_DISTANCE_DEFAULT; char *rmap = strmatch (argv[argc - 2]->text, "route-map") ? XSTRDUP(MTYPE_ROUTE_MAP_NAME, argv[argc - 1]->arg) : NULL; + int ret; + if (argc == 7 || (argc == 5 && !rmap)) VTY_GET_INTEGER_RANGE("distance", distance, argv[4]->arg, 1, 255); @@ -3115,7 +3117,11 @@ DEFUN (ip_zebra_import_table_distance, return CMD_WARNING; } - return (zebra_import_table(AFI_IP, table_id, distance, rmap, 1)); + ret = zebra_import_table(AFI_IP, table_id, distance, rmap, 1); + if (rmap) + XFREE(MTYPE_ROUTE_MAP_NAME, rmap); + + return ret; } DEFUN (no_ip_zebra_import_table,