Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma

Pull rdma fix from Doug Ledford:
"Fix an oops issue in the new RDMA netlink code"

* tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma:
RDMA/netlink: OOPs in rdma_nl_rcv_msg() from misinterpreted flag

+12 -1
+12 -1
drivers/infiniband/core/netlink.c
··· 175 175 !netlink_capable(skb, CAP_NET_ADMIN)) 176 176 return -EPERM; 177 177 178 + /* 179 + * LS responses overload the 0x100 (NLM_F_ROOT) flag. Don't 180 + * mistakenly call the .dump() function. 181 + */ 182 + if (index == RDMA_NL_LS) { 183 + if (cb_table[op].doit) 184 + return cb_table[op].doit(skb, nlh, extack); 185 + return -EINVAL; 186 + } 178 187 /* FIXME: Convert IWCM to properly handle doit callbacks */ 179 188 if ((nlh->nlmsg_flags & NLM_F_DUMP) || index == RDMA_NL_RDMA_CM || 180 189 index == RDMA_NL_IWCM) { 181 190 struct netlink_dump_control c = { 182 191 .dump = cb_table[op].dump, 183 192 }; 184 - return netlink_dump_start(nls, skb, nlh, &c); 193 + if (c.dump) 194 + return netlink_dump_start(nls, skb, nlh, &c); 195 + return -EINVAL; 185 196 } 186 197 187 198 if (cb_table[op].doit)