OSDN Git Service

net: genetlink: always allocate separate attrs for dumpit ops
authorJiri Pirko <jiri@mellanox.com>
Tue, 8 Oct 2019 10:31:43 +0000 (12:31 +0200)
committerJakub Kicinski <jakub.kicinski@netronome.com>
Wed, 9 Oct 2019 01:00:08 +0000 (18:00 -0700)
commitab5b526da0485ac4af3d395e5ce1c04b1bfbb89c
tree0dfc9c44e377d41c26efcdf4f0884e14f50d20e8
parent48423dd7e683dadcfacc2bfb3bc0e57e7c8b9cb2
net: genetlink: always allocate separate attrs for dumpit ops

Individual dumpit ops (start, dumpit, done) are locked by genl_lock
if !family->parallel_ops. However, multiple
genl_family_rcv_msg_dumpit() calls may in in flight in parallel.
Each has a separate struct genl_dumpit_info allocated
but they share the same family->attrbuf. Fix this by allocating separate
memory for attrs for dumpit ops, for non-parallel_ops (for parallel_ops
it is done already).

Reported-by: syzbot+495688b736534bb6c6ad@syzkaller.appspotmail.com
Reported-by: syzbot+ff59dc711f2cff879a05@syzkaller.appspotmail.com
Reported-by: syzbot+dbe02e13bcce52bcf182@syzkaller.appspotmail.com
Reported-by: syzbot+9cb7edb2906ea1e83006@syzkaller.appspotmail.com
Fixes: bf813b0afeae ("net: genetlink: parse attrs and store in contect info struct during dumpit")
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
net/netlink/genetlink.c