Re: [PATCH] smb: client: fix potential NULL deref in parse_dfs_referrals()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



updated cifs-2.6.git for-next (and added Cc: stable) with this patch

On Tue, Dec 5, 2023 at 6:50 PM Paulo Alcantara <pc@xxxxxxxxxxxxx> wrote:
>
> If server returned no data for FSCTL_DFS_GET_REFERRALS, @dfs_rsp will
> remain NULL and then parse_dfs_referrals() will dereference it.
>
> Fix this by returning -EIO when no output data is returned.
>
> Besides, we can't fix it in SMB2_ioctl() as some FSCTLs are allowed to
> return no data as per MS-SMB2 2.2.32.
>
> Fixes: 9d49640a21bf ("CIFS: implement get_dfs_refer for SMB2+")
> Reported-by: Robert Morris <rtm@xxxxxxxxxxxxx>
> Signed-off-by: Paulo Alcantara (SUSE) <pc@xxxxxxxxxxxxx>
> ---
>  fs/smb/client/smb2ops.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/fs/smb/client/smb2ops.c b/fs/smb/client/smb2ops.c
> index 45931115f475..fcfb6566b899 100644
> --- a/fs/smb/client/smb2ops.c
> +++ b/fs/smb/client/smb2ops.c
> @@ -2836,6 +2836,8 @@ smb2_get_dfs_refer(const unsigned int xid, struct cifs_ses *ses,
>                 usleep_range(512, 2048);
>         } while (++retry_count < 5);
>
> +       if (!rc && !dfs_rsp)
> +               rc = -EIO;
>         if (rc) {
>                 if (!is_retryable_error(rc) && rc != -ENOENT && rc != -EOPNOTSUPP)
>                         cifs_tcon_dbg(VFS, "%s: ioctl error: rc=%d\n", __func__, rc);
> --
> 2.43.0
>


-- 
Thanks,

Steve





[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux