mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 18:21:24 +02:00
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>
This commit is contained in:
parent
a4f27ad055
commit
fc8789bb57
|
|
@ -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 @@ smb3_query_mf_symlink(unsigned int xid, struct cifs_tcon *tcon,
|
|||
SMB2_close(xid, tcon, fid.persistent_fid, fid.volatile_fid);
|
||||
qmf_out_open_fail:
|
||||
kfree(utf16_path);
|
||||
kfree(pfile_info);
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user