+6
−1
+1
−1
+1
−8
Loading
mainline inclusion from mainline-v6.7-rc1 commit e6322fd177c6885a21dd4609dc5e5c973d1a2eb7 category: bugfix bugzilla: https://gitee.com/src-openeuler/kernel/issues/I9R4KS CVE: CVE-2023-52757 Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e6322fd177c6885a21dd4609dc5e5c973d1a2eb7 -------------------------------- All release_mid() callers seem to hold a reference of @mid so there is no need to call kref_put(&mid->refcount, __release_mid) under @server->mid_lock spinlock. If they don't, then an use-after-free bug would have occurred anyways. By getting rid of such spinlock also fixes a potential deadlock as shown below CPU 0 CPU 1 ------------------------------------------------------------------ cifs_demultiplex_thread() cifs_debug_data_proc_show() release_mid() spin_lock(&server->mid_lock); spin_lock(&cifs_tcp_ses_lock) spin_lock(&server->mid_lock) __release_mid() smb2_find_smb_tcon() spin_lock(&cifs_tcp_ses_lock) *deadlock* Cc: stable@vger.kernel.org Signed-off-by:Paulo Alcantara (SUSE) <pc@manguebit.com> Signed-off-by:
Steve French <stfrench@microsoft.com> Conflicts: fs/smb/client/cifsproto.h fs/smb/client/smb2misc.c fs/smb/client/transport.c fs/cifs/cifsproto.h fs/cifs/smb2misc.c fs/cifs/transport.c [Path is changed and related functions has been refactored for a long time] Signed-off-by:
Wang Zhaolong <wangzhaolong1@huawei.com>