|
@@ -1548,6 +1548,7 @@ static struct sk_buff *xfrm_policy_netlink(struct sk_buff *in_skb,
|
|
|
{
|
|
|
struct xfrm_dump_info info;
|
|
|
struct sk_buff *skb;
|
|
|
+ int err;
|
|
|
|
|
|
skb = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL);
|
|
|
if (!skb)
|
|
@@ -1558,9 +1559,10 @@ static struct sk_buff *xfrm_policy_netlink(struct sk_buff *in_skb,
|
|
|
info.nlmsg_seq = seq;
|
|
|
info.nlmsg_flags = 0;
|
|
|
|
|
|
- if (dump_one_policy(xp, dir, 0, &info) < 0) {
|
|
|
+ err = dump_one_policy(xp, dir, 0, &info);
|
|
|
+ if (err) {
|
|
|
kfree_skb(skb);
|
|
|
- return NULL;
|
|
|
+ return ERR_PTR(err);
|
|
|
}
|
|
|
|
|
|
return skb;
|