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....@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

_______________________________________________
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss

Reply via email to