In the Linux kernel, the following vulnerability has been resolved:smb/server: avoid deadlock when linking with ReplaceIfExistsIf smb2_create_link() is called with ReplaceIfExists set and the namedoes exist then a deadlock will happen.ksmbd_vfs_kern_path_locked() will return with success and the parentdirectory will be locked. ksmbd_vfs_remove_file() will then remove thefile. ksmbd_vfs_link() will then be called while the parent is stilllocked. It will try to lock the same parent and will deadlock.This patch moves the ksmbd_vfs_kern_path_unlock() call to *before*ksmbd_vfs_link() and then simplifies the code, removing the file_presentflag variable.
No PoCs from references.
- https://github.com/w4zu/Debian_security