• Pablo Neira Ayuso's avatar
    netfilter: nfnetlink: nfnetlink_unicast() reports EAGAIN instead of ENOBUFS · ee921183
    Pablo Neira Ayuso authored
    Frontend callback reports EAGAIN to nfnetlink to retry a command, this
    is used to signal that module autoloading is required. Unfortunately,
    nlmsg_unicast() reports EAGAIN in case the receiver socket buffer gets
    full, so it enters a busy-loop.
    
    This patch updates nfnetlink_unicast() to turn EAGAIN into ENOBUFS and
    to use nlmsg_unicast(). Remove the flags field in nfnetlink_unicast()
    since this is always MSG_DONTWAIT in the existing code which is exactly
    what nlmsg_unicast() passes to netlink_unicast() as parameter.
    
    Fixes: 96518518 ("netfilter: add nftables")
    Reported-by: default avatarPhil Sutter <phil@nwl.cc>
    Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
    ee921183
nfnetlink.c 15.4 KB