diff options
| author | ChenXiaoSong <chenxiaosong@kylinos.cn> | 2026-07-09 10:57:00 +0800 |
|---|---|---|
| committer | Steve French <stfrench@microsoft.com> | 2026-07-09 07:55:55 -0500 |
| commit | fc8789bb57e625e5f32ac57ca2e7d3e7b7fda225 (patch) | |
| tree | b4eabfbdd3670e1fd9eae2b11611de94c1f122e4 /fs/smb/client | |
| parent | a4f27ad055392fa164f5649e89a3637b033c5fcc (diff) | |
| download | linux-next-fc8789bb57e625e5f32ac57ca2e7d3e7b7fda225.tar.gz linux-next-fc8789bb57e625e5f32ac57ca2e7d3e7b7fda225.zip | |
smb/client: use stack-allocated smb2_file_all_info in smb3_query_mf_symlink()
SMB2_open() only fills the fixed fields, so a stack-allocated
smb2_file_all_info is sufficient here.
Signed-off-by: ChenXiaoSong <chenxiaosong@kylinos.cn>
Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'fs/smb/client')
| -rw-r--r-- | fs/smb/client/link.c | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/fs/smb/client/link.c b/fs/smb/client/link.c index dd127917a340..0014523d6511 100644 --- a/fs/smb/client/link.c +++ b/fs/smb/client/link.c @@ -320,7 +320,7 @@ smb3_query_mf_symlink(unsigned int xid, struct cifs_tcon *tcon, int buf_type = CIFS_NO_BUFFER; __le16 *utf16_path; __u8 oplock = SMB2_OPLOCK_LEVEL_NONE; - struct smb2_file_all_info *pfile_info = NULL; + struct smb2_file_all_info file_info = {}; oparms = (struct cifs_open_parms) { .tcon = tcon, @@ -336,20 +336,12 @@ smb3_query_mf_symlink(unsigned int xid, struct cifs_tcon *tcon, if (utf16_path == NULL) return -ENOMEM; - pfile_info = kzalloc(sizeof(struct smb2_file_all_info) + PATH_MAX * 2, - GFP_KERNEL); - - if (pfile_info == NULL) { - kfree(utf16_path); - return -ENOMEM; - } - - rc = SMB2_open(xid, &oparms, utf16_path, &oplock, pfile_info, NULL, + rc = SMB2_open(xid, &oparms, utf16_path, &oplock, &file_info, NULL, NULL, NULL); if (rc) goto qmf_out_open_fail; - if (pfile_info->EndOfFile != cpu_to_le64(CIFS_MF_SYMLINK_FILE_SIZE)) { + if (file_info.EndOfFile != cpu_to_le64(CIFS_MF_SYMLINK_FILE_SIZE)) { /* it's not a symlink */ rc = -ENOENT; /* Is there a better rc to return? */ goto qmf_out; @@ -367,7 +359,6 @@ qmf_out: SMB2_close(xid, tcon, fid.persistent_fid, fid.volatile_fid); qmf_out_open_fail: kfree(utf16_path); - kfree(pfile_info); return rc; } |
