• C
    NLM: nlm_privileged_requester() doesn't recognize mapped loopback address · d1208f70
    Chuck Lever 提交于
    Commit b85e4676 added the nlm_privileged_requester() helper to check
    whether an RPC request was sent from a local privileged caller.  It
    recognizes IPv4 privileged callers (from "127.0.0.1"), and IPv6
    privileged callers (from "::1").
    
    However, IPV6_ADDR_LOOPBACK is not set for the mapped IPv4 loopback
    address (::ffff:7f00:0001), so the test breaks when the kernel's RPC
    service is IPv6-enabled but user space is calling via the IPv4
    loopback address.  This is actually the most common case for IPv6-
    enabled RPC services on Linux.
    
    Rewrite the IPv6 check to handle the mapped IPv4 loopback address as
    well as a normal IPv6 loopback address.
    Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
    Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
    d1208f70
lockd.h 11.7 KB