]> git.puffer.fish Git - mirror/frr.git/commitdiff
isisd: Fix SRv6 memory leaks 14467/head
authorCarmine Scarpitta <cscarpit@cisco.com>
Thu, 21 Sep 2023 16:32:06 +0000 (18:32 +0200)
committerCarmine Scarpitta <cscarpit@cisco.com>
Thu, 21 Sep 2023 16:43:04 +0000 (18:43 +0200)
When isis_zebra_process_srv6_locator_chunk() returns prematurely
due to an error, do not forget to free memory allocated by
srv6_locator_chunk_alloc().

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
isisd/isis_zebra.c

index 318934b491c4274e984cbd68cb1e07401ea76810..8252c1ac25a693aed34ebbc0c7675a3bc41ca529 100644 (file)
@@ -1136,13 +1136,17 @@ static int isis_zebra_process_srv6_locator_chunk(ZAPI_CALLBACK_ARGS)
        enum srv6_endpoint_behavior_codepoint behavior;
        bool allocated = false;
 
-       if (!isis)
+       if (!isis) {
+               srv6_locator_chunk_free(&chunk);
                return -1;
+       }
 
        /* Decode the received zebra message */
        s = zclient->ibuf;
-       if (zapi_srv6_locator_chunk_decode(s, chunk) < 0)
+       if (zapi_srv6_locator_chunk_decode(s, chunk) < 0) {
+               srv6_locator_chunk_free(&chunk);
                return -1;
+       }
 
        sr_debug(
                "Received SRv6 locator chunk from zebra: name %s, "