]> granicus.if.org Git - ipset/commitdiff
"Directory not empty" error message (reported by John Brendler)
authorJozsef Kadlecsik <kadlec@blackhole.kfki.hu>
Thu, 21 Feb 2013 10:12:40 +0000 (11:12 +0100)
committerJozsef Kadlecsik <kadlec@blackhole.kfki.hu>
Thu, 21 Feb 2013 10:16:42 +0000 (11:16 +0100)
When an entry flagged with "nomatch" was tested by ipset, it
returned the error message "Kernel error received:
Directory not empty" instead of "<element> is NOT in set <setname>".

The internal error code was not properly transformed before returning
to userspace, fixed.

kernel/net/netfilter/ipset/ip_set_core.c

index 962f1242f2e068cb578039697a03a36515a5b48d..7345280ea851cddf0a73e2d27a296c6e0821fb80 100644 (file)
@@ -1507,7 +1507,8 @@ ip_set_utest(struct sock *ctnl, struct sk_buff *skb,
        if (ret == -EAGAIN)
                ret = 1;
 
-       return ret < 0 ? ret : ret > 0 ? 0 : -IPSET_ERR_EXIST;
+       return (ret < 0 && ret != -ENOTEMPTY) ? ret :
+               ret > 0 ? 0 : -IPSET_ERR_EXIST;
 }
 
 /* Get headed data of a set */