xfrm: Flushing empty SAD generates false events
[safe/jmp/linux-2.6] / net / xfrm / xfrm_user.c
index 943c871..cd94a9d 100644 (file)
@@ -1524,8 +1524,11 @@ static int xfrm_flush_sa(struct sk_buff *skb, struct nlmsghdr *nlh,
        audit_info.sessionid = NETLINK_CB(skb).sessionid;
        audit_info.secid = NETLINK_CB(skb).sid;
        err = xfrm_state_flush(net, p->proto, &audit_info);
-       if (err)
+       if (err) {
+               if (err == -ESRCH) /* empty table */
+                       return 0;
                return err;
+       }
        c.data.proto = p->proto;
        c.event = nlh->nlmsg_type;
        c.seq = nlh->nlmsg_seq;