From ca0c52d1c8c6317e33a2c574f7ca177902c7d049 Mon Sep 17 00:00:00 2001 From: Yajun Deng Date: Fri, 29 Apr 2022 03:33:44 +0000 Subject: [PATCH] netdevice: add the case if dev is NULL stable inclusion from stable-v4.19.238 commit 574a12b4445076a04499962ce8b8ae15f75a7955 category: bugfix bugzilla: https://gitee.com/src-openeuler/kernel/issues/I51YBN CVE: CVE-2022-28356 ------------------------------------------------- commit b37a466837393af72fe8bcb8f1436410f3f173f3 upstream. Add the case if dev is NULL in dev_{put, hold}, so the caller doesn't need to care whether dev is NULL or not. Signed-off-by: Yajun Deng Signed-off-by: David S. Miller Cc: Pavel Machek Signed-off-by: Greg Kroah-Hartman Signed-off-by: Huang Guobin Reviewed-by: Wei Yongjun Reviewed-by: Xiu Jianfeng Signed-off-by: Yongqiang Liu --- include/linux/netdevice.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 9a7d7e6304f4..752df39590ba 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -3790,7 +3790,8 @@ void netdev_run_todo(void); */ static inline void dev_put(struct net_device *dev) { - this_cpu_dec(*dev->pcpu_refcnt); + if (dev) + this_cpu_dec(*dev->pcpu_refcnt); } /** @@ -3801,7 +3802,8 @@ static inline void dev_put(struct net_device *dev) */ static inline void dev_hold(struct net_device *dev) { - this_cpu_inc(*dev->pcpu_refcnt); + if (dev) + this_cpu_inc(*dev->pcpu_refcnt); } /* Carrier loss detection, dial on demand. The functions netif_carrier_on -- GitLab