]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
RDMA/nldev: Fix NULL pointer dereferences issue in rdma_nl_notify_event
authorQianqiang Liu <qianqiang.liu@163.com>
Fri, 27 Sep 2024 14:06:13 +0000 (22:06 +0800)
committerLeon Romanovsky <leon@kernel.org>
Tue, 8 Oct 2024 07:12:42 +0000 (10:12 +0300)
nlmsg_put() may return a NULL pointer assigned to nlh, which will later
be dereferenced in nlmsg_end().

Fixes: 9cbed5aab5ae ("RDMA/nldev: Add support for RDMA monitoring")
Link: https://patch.msgid.link/r/Zva71Yf3F94uxi5A@iZbp1asjb3cy8ks0srf007Z
Signed-off-by: Qianqiang Liu <qianqiang.liu@163.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
drivers/infiniband/core/nldev.c

index 39f89a4b86498220ec30bcb16bcc804f2b049752..7dc8e2ec62cc8bd5d86690ebdcff6dec8765f0a3 100644 (file)
@@ -2816,6 +2816,8 @@ int rdma_nl_notify_event(struct ib_device *device, u32 port_num,
        nlh = nlmsg_put(skb, 0, 0,
                        RDMA_NL_GET_TYPE(RDMA_NL_NLDEV, RDMA_NLDEV_CMD_MONITOR),
                        0, 0);
+       if (!nlh)
+               goto err_free;
 
        switch (type) {
        case RDMA_REGISTER_EVENT: