diff options
| author | ZhangGuoDong <zhangguodong@kylinos.cn> | 2025-12-29 11:15:18 +0800 |
|---|---|---|
| committer | Steve French <stfrench@microsoft.com> | 2025-12-29 17:39:58 -0600 |
| commit | f416c556997aa56ec4384c6b6efd6a0e6ac70aa7 (patch) | |
| tree | 8f10fe4f55576270c2989e0f2f2c8e770fa96969 /fs | |
| parent | 3296c3012a9d9a27e81e34910384e55a6ff3cff0 (diff) | |
smb/server: fix refcount leak in smb2_open()
When ksmbd_vfs_getattr() fails, the reference count of ksmbd_file
must be released.
Suggested-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: ZhangGuoDong <zhangguodong@kylinos.cn>
Signed-off-by: ChenXiaoSong <chenxiaosong@kylinos.cn>
Acked-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'fs')
| -rw-r--r-- | fs/smb/server/smb2pdu.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/smb/server/smb2pdu.c b/fs/smb/server/smb2pdu.c index ec9e4cd24c4c..2fcd0d4d1fb0 100644 --- a/fs/smb/server/smb2pdu.c +++ b/fs/smb/server/smb2pdu.c @@ -3010,10 +3010,10 @@ int smb2_open(struct ksmbd_work *work) file_info = FILE_OPENED; rc = ksmbd_vfs_getattr(&fp->filp->f_path, &stat); + ksmbd_put_durable_fd(fp); if (rc) goto err_out2; - ksmbd_put_durable_fd(fp); goto reconnected_fp; } } else if (req_op_level == SMB2_OPLOCK_LEVEL_LEASE) |
