Hi Tim,

On Mon, Jan 04, 2021 at 12:58:25AM +0100, Tim Duesterhus wrote:
> Willy,
> Thayne,
> 
> find the patch below.
> 
> I am adding Thayne as CC as it was your commit that uncovered the issue and 
> the
> crash happened in a function you wrote. Maybe you might want to add some
> additional checks somewhere?
> 
> Best regards
> Tim Düsterhus
> 
> Apply with `git am --scissors` to automatically cut the commit message.
> 
> -- >8 --
> GitHub Issue #1026 reported a crash during configuration check for the
> following example config:
> 
>     backend 0
>     server 0 0
>     server 0 0
> 
> HAProxy crashed in srv_set_addr_desc() due to a NULL pointer dereference 
> caused
> by `sa2str` returning NULL for an `AF_UNSPEC` address (`0`).

That's embarrassing.

> Fix this issue by erroring out early if the parsed address results in an
> `AF_UNSPEC` family.

Unfortunately we cannot do that or it destroys usage of the DNS or
even any runtime address assignment over the CLI. For example if you
write:

    server foo foo init-addr none

I guess it won't work anymore since that's placed just after the address
parsing. This means however that there probably is something more
problematic in the referencing of address-less servers. Either servers
are added/updated each time their address changes (to follow DNS) and
then we can simply skip their registration when they're address-less.
Or the servers are only registered at boot time, and the synchronization
will fail after any address update. What do you think, Thayne ?

Willy

Reply via email to