• Ezequiel Garcia's avatar
    ipv4: Fix non-initialized TTL when CONFIG_SYSCTL=n · 049bbf58
    Ezequiel Garcia authored
    Commit fa50d974 ("ipv4: Namespaceify ip_default_ttl sysctl knob")
    moves the default TTL assignment, and as side-effect IPv4 TTL now
    has a default value only if sysctl support is enabled (CONFIG_SYSCTL=y).
    
    The sysctl_ip_default_ttl is fundamental for IP to work properly,
    as it provides the TTL to be used as default. The defautl TTL may be
    used in ip_selected_ttl, through the following flow:
    
      ip_select_ttl
        ip4_dst_hoplimit
          net->ipv4.sysctl_ip_default_ttl
    
    This commit fixes the issue by assigning net->ipv4.sysctl_ip_default_ttl
    in net_init_net, called during ipv4's initialization.
    
    Without this commit, a kernel built without sysctl support will send
    all IP packets with zero TTL (unless a TTL is explicitly set, e.g.
    with setsockopt).
    
    Given a similar issue might appear on the other knobs that were
    namespaceify, this commit also moves them.
    
    Fixes: fa50d974 ("ipv4: Namespaceify ip_default_ttl sysctl knob")
    Signed-off-by: default avatarEzequiel Garcia <ezequiel@vanguardiasur.com.ar>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    049bbf58
sysctl_net_ipv4.c 24.9 KB