[Dnsmasq-discuss] [PATCH] Fix potential memory leak

Geert Stappers stappers at stappers.nl
Sat Mar 2 16:03:01 UTC 2024


On Fri, Mar 01, 2024 at 04:43:20PM -0500, Brian Haley wrote:
> When a new IPv6 address is being added to a dhcp_config
> struct, if there is anything invalid regarding the prefix
> it looks like there is a potential memory leak.
> ret_err_free() should be used to free it.
> 
> Signed-off-by: Brian Haley <haleyb.dev at gmail.com>
> ---
>  src/option.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/src/option.c b/src/option.c
> index f4ff7c0..02be995 100644
> --- a/src/option.c
> +++ b/src/option.c
> @@ -4034,7 +4034,7 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma
>  			    ((((u64)1<<(128-new_addr->prefixlen))-1) & addrpart) != 0)
>  			  {
>  			    dhcp_config_free(new);
> -			    ret_err(_("bad IPv6 prefix"));
> +			    ret_err_free(_("bad IPv6 prefix"), new_addr);
>  			  }
>  			
>  			new_addr->flags |= ADDRLIST_PREFIX;

Looks good to me


> Also, the new addrlist struct is being linked into
> the existing addr6 list in the dhcp_config before the
> validity check, it is best to defer this insertion
> until later so an invalid entry is not present, since
> the CONFIG_ADDR6 flag might not have been set yet.

That is worth its own commit.
 


Groeten
Geert Stappers
-- 
Silence is hard to parse



More information about the Dnsmasq-discuss mailing list