diff --git a/kernel/taskstats.c b/kernel/taskstats.c index cb5ebb0b2dd0..d1f6ff77d7e0 100644 --- a/kernel/taskstats.c +++ b/kernel/taskstats.c @@ -793,6 +793,10 @@ static int taskstats2_foreach(struct sk_buff *skb, struct netlink_callback *cb) nla = nla_find(nlmsg_attrdata(cb->nlh, GENL_HDRLEN), nlmsg_attrlen(cb->nlh, GENL_HDRLEN), TASKSTATS_TYPE_FOREACH); + + if (!nla) + goto out; + buf = nla_get_u32(nla); oom_score_min = (short) (buf & 0xFFFF); oom_score_max = (short) ((buf >> 16) & 0xFFFF); @@ -850,6 +854,7 @@ static int taskstats2_foreach(struct sk_buff *skb, struct netlink_callback *cb) } cb->args[0] = iter.tgid; +out: return skb->len; }