net: genl: fix error path memory leak in policy dumping
authorJakub Kicinski <kuba@kernel.org>
Tue, 16 Aug 2022 16:19:39 +0000 (09:19 -0700)
committerJakub Kicinski <kuba@kernel.org>
Thu, 18 Aug 2022 17:20:48 +0000 (10:20 -0700)
commit249801360db3dec4f73768c502192020bfddeacc
tree12f45371df138671e0ef5f3f6b0fdb3692b4dbe2
parent5c23d6b717e4e956376f3852b90f58e262946b50
net: genl: fix error path memory leak in policy dumping

If construction of the array of policies fails when recording
non-first policy we need to unwind.

netlink_policy_dump_add_policy() itself also needs fixing as
it currently gives up on error without recording the allocated
pointer in the pstate pointer.

Reported-by: syzbot+dc54d9ba8153b216cae0@syzkaller.appspotmail.com
Fixes: 50a896cf2d6f ("genetlink: properly support per-op policy dumping")
Link: https://lore.kernel.org/r/20220816161939.577583-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/netlink/genetlink.c
net/netlink/policy.c