]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
Fix argv leaks in add_route() and add_route_ipv6()
authorDavid Korczynski <david@adalogics.com>
Wed, 14 Jul 2021 16:25:33 +0000 (17:25 +0100)
committerGert Doering <gert@greenie.muc.de>
Tue, 27 Jul 2021 13:41:54 +0000 (15:41 +0200)
If a route structure is passed to add_route() or add_route_ipv6()
without the RT_DEFINED flag set, both functions leak an "argv"
structure allocation.

Add appropriate argv_free() calls.

Signed-off-by: David Korczynski <david@adalogics.com>
Acked-by: Antonio Quartulli <antonio@openvpn.net>
Message-Id: <20210714162533.10098-1-david@adalogics.com>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg22637.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
src/openvpn/route.c

index 56fa7717241a5cb28be2bbede0f38675e24e7c00..e429e8c0a4211fbf35c59ec3614d3552a0f8791e 100644 (file)
@@ -1584,6 +1584,7 @@ add_route(struct route_ipv4 *r,
 
     if (!(r->flags & RT_DEFINED))
     {
+        argv_free(&argv);
         return;
     }
 
@@ -1891,6 +1892,7 @@ add_route_ipv6(struct route_ipv6 *r6, const struct tuntap *tt,
 
     if (!(r6->flags & RT_DEFINED) )
     {
+        argv_free(&argv);
         return;
     }