[linux-cifs-client] Re: [PATCH 3/3] cifs: fix artificial limit on reading symlinks

Steve French smfrench at gmail.com
Mon May 25 01:47:51 GMT 2009


Good catch.  There are probably a couple of other examples like this
that need to be changed.   We could make this a min() call rather
than simply setting it to MaxBufSize ... but your change should work

On Sun, May 24, 2009 at 5:45 PM, Jeff Layton <jlayton at redhat.com> wrote:
> There's no reason to limit the size of a symlink that we can read to
> 4000 bytes. That may be nowhere near PATH_MAX if the server is sending
> UCS2 strings. CIFS should be able to read in a symlink up to the size of
> the buffer. The size of the header has already been accounted for when
> creating the slabcache, so CIFSMaxBufSize should be the correct size to
> pass in.
>
> Fixes samba bug #6384.
>
> Signed-off-by: Jeff Layton <jlayton at redhat.com>
> ---
>  fs/cifs/cifssmb.c |    3 +--
>  1 files changed, 1 insertions(+), 2 deletions(-)
>
> diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c
> index d062602..aece2a8 100644
> --- a/fs/cifs/cifssmb.c
> +++ b/fs/cifs/cifssmb.c
> @@ -2427,8 +2427,7 @@ querySymLinkRetry:
>        params = 2 /* level */  + 4 /* rsrvd */  + name_len /* incl null */ ;
>        pSMB->TotalDataCount = 0;
>        pSMB->MaxParameterCount = cpu_to_le16(2);
> -       /* BB find exact max data count below from sess structure BB */
> -       pSMB->MaxDataCount = cpu_to_le16(4000);
> +       pSMB->MaxDataCount = cpu_to_le16(CIFSMaxBufSize);
>        pSMB->MaxSetupCount = 0;
>        pSMB->Reserved = 0;
>        pSMB->Flags = 0;
> --
> 1.6.0.6
>
>



-- 
Thanks,

Steve


More information about the linux-cifs-client mailing list