Subject: Re: [PATCH v2] ipv4: ping: fix bind address validity check

From: Carlos Llamas <[email-masked]>
Date: Fri, 17 Jun 2022 16:39:21 +0000

On Fri, Jun 17, 2022 at 10:54:35AM +0200, Riccardo Paolo Bestetti wrote:
> Commit 8ff978b8b222 ("ipv4/raw: support binding to nonlocal addresses")
> introduced a helper function to fold duplicated validity checks of bind
> addresses into inet_addr_valid_or_nonlocal(). However, this caused an
> unintended regression in ping_check_bind_addr(), which previously would
> reject binding to multicast and broadcast addresses, but now these are
> both incorrectly allowed as reported in [1].
> 
> This patch restores the original check. A simple reordering is done to
> improve readability and make it evident that multicast and broadcast
> addresses should not be allowed. Also, add an early exit for INADDR_ANY
> which replaces lost behavior added by commit 0ce779a9f501 ("net: Avoid
> unnecessary inet_addr_type() call when addr is INADDR_ANY").
> 
> Furthermore, this patch introduces regression selftests to catch these
> specific cases.
> 
> [1] https://lore.kernel.org/netdev/[email-masked]/
> 
> Fixes: 8ff978b8b222 ("ipv4/raw: support binding to nonlocal addresses")
> Cc: Miaohe Lin <[email-masked]>
> Reported-by: Maciej Żenczykowski <[email-masked]>
> Signed-off-by: Carlos Llamas <[email-masked]>
> Signed-off-by: Riccardo Paolo Bestetti <[email-masked]>
> ---
> This patch is sent as a follow-up to the discussion on the v1 by Carlos
> Llamas.
> 
> Original thread:
> https://lore.kernel.org/netdev/[email-masked]/
> 

Reviewed-by: Carlos Llamas <[email-masked]>

Thanks Riccardo for adding the test cases. I would appreciate it if next
time you add a co-developed tag or maybe a separate commit as opposed to
overriding the original author. This is fine though.

--
Carlos Llamas