[Bug 287147] ip_output treats unassigned local addresses as broadcast addresses

From: <bugzilla-noreply_at_freebsd.org>
Date: Thu, 29 May 2025 16:48:07 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=287147

            Bug ID: 287147
           Summary: ip_output treats unassigned local addresses as
                    broadcast addresses
           Product: Base System
           Version: 15.0-CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: asomers@FreeBSD.org

On FreeBSD 15.0-CURRENT, but not on older versions, ip_output seems to treat
unassigned local addresses as broadcast addresses.  I think this behavior may
be introduced by 3b281d1421a78b588c5fc4182009ce62d8823d95 "netinet: enforce
broadcast mode for all-ones and all-zeroes destinations".

Steps to Reproduce
==================

Assuming that address 127.100.0.1 isn't assigned to any interface, which it
usually isn't, do: ping -c1 127.100.0.1

On FreeBSD 15.0-CURRENT, this will fail with "ping: sendto: Permission denied".
 On older versions, it will fail with "ping: sendto: Can't assign requested
address".

The older behavior makes more sense to me.  It's more consistent with the
connect(2) man page, especially since 127.100.0.1 isn't actually a broadcast
address.

Would it be possible to restore the old behavior?

-- 
You are receiving this mail because:
You are the assignee for the bug.