From aba8b2b3376f68ebacbe5063a4e833c359664c6a Mon Sep 17 00:00:00 2001 From: Yajun Deng Date: Thu, 28 Apr 2022 15:52:41 +0800 Subject: [PATCH] netdevice: add the case if dev is NULL stable inclusion from stable-v5.10.110 commit ff919a7ad90c361634f0bc5c58120252d87b887a bugzilla: https://gitee.com/src-openeuler/kernel/issues/I51YBN CVE: CVE-2022-28356 Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?ff919a7ad90c361634f0bc5c58120252d87b887a -------------------------------- 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 Signed-off-by: Zheng Zengkai --- 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 41b991fc3a4b..051a8b2edf13 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -4033,7 +4033,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); } /** @@ -4044,7 +4045,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