Fix NULL pointer dereference in cn_filter()
authorAnjali Kulkarni <anjali.k.kulkarni@oracle.com>
Fri, 20 Oct 2023 23:40:58 +0000 (16:40 -0700)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 24 Oct 2023 08:53:45 +0000 (10:53 +0200)
Check that sk_user_data is not NULL, else return from cn_filter().
Could not reproduce this issue, but Oliver Sang verified it has fixed
the "Closes" problem below.

Fixes: 2aa1f7a1f47c ("connector/cn_proc: Add filtering to fix some bugs")
Reported-by: kernel test robot <oliver.sang@intel.com>
Closes: https://lore.kernel.org/oe-lkp/202309201456.84c19e27-oliver.sang@intel.com/
Signed-off-by: Anjali Kulkarni <anjali.k.kulkarni@oracle.com>
Link: https://lore.kernel.org/r/20231020234058.2232347-1-anjali.k.kulkarni@oracle.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/connector/cn_proc.c

index 05d562e..44b19e6 100644 (file)
@@ -54,7 +54,7 @@ static int cn_filter(struct sock *dsk, struct sk_buff *skb, void *data)
        enum proc_cn_mcast_op mc_op;
        uintptr_t val;
 
-       if (!dsk || !data)
+       if (!dsk || !dsk->sk_user_data || !data)
                return 0;
 
        ptr = (__u32 *)data;