[PATCH] Fix Bug 11354

Christian Ambach ambi at samba.org
Wed May 11 13:00:11 UTC 2016


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Am 11.05.16 um 14:36 schrieb Jeremy Allison:
> Looking in MS-CIFS it says that the max data response length is
> zero, not 2. (section 2.2.6.7.2).
> 
> So couldn't this be:
> 
>>> +                        data,  data_len, 0
> instead ?
> 

You're right. I misinterpreted the parameter size
as data size.

Corrected patch attached (still works in my tests against Windows).

Christian

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJXMyzQAAoJEO82xV3lz0qduiIQAIcatgyLmLDa0H45WWmX4rY8
sNbb+NwsN25NGwR/CE286um9Gn7MUkgzBkuL6IUqLB0/0r5xBzWwbCOAe5A3aaQQ
+AmPVhFjbsx/03/4LK/lT660uko0dYa9uKP545ka+5O3b7p7bNb8tYZRihcM9qak
SfohqVjjLahi+nbK5wDOF2d4q2ZdIv00mOxkfg+EOOTc7AUjcnHlOgH0YqNsRIiU
cStO5LPB9ELtfPSt0sPW1f40UHV28I3P8pnEuICPrFKokjFAYykNXTsKfNpcGRvE
PNN4yZAZLpibJQVHUC//h76Wyyf8mzgOnylyjTcrfnbGYKUs0tWhbF/W47yYU/rO
03kf0Xzu1jDqGy5tvVvtV4lBU2hD58wTE2jwM1nkakMm+mLeEg9b43ugVLPntwqr
UwCNWxeH/bt4GT1hu7Gy71g3u/A3671KtsDTlRHEh/Cd32H2ZC2ihkDJxeNqpIfg
jRyIwE31szyltCBw4043NF+ql50n3jqSjcMNu0jjxvN2kN8azjV8g4fZTRyzyNbB
3Vulw38J0i+rcsspuMmr7l8xtu3FNqsMZoC69VLUuVPi9VFd+dvR6H/dl9fCrZzW
+z6dOkDybJ58+gkdLLV1xOvTX2aR28fHsCWc66TJs1xTvF3f9lF0/B8P0VdmRBh+
5rUl0XBByJAj/crsJg+N
=M9Hj
-----END PGP SIGNATURE-----
-------------- next part --------------
From 8ce68a14c564ad2933bb8eb58b5ec0c7713fc7b3 Mon Sep 17 00:00:00 2001
From: Christian Ambach <ambi at samba.org>
Date: Tue, 10 May 2016 19:47:02 +0200
Subject: [PATCH] s3:libsmb/clifile use correct value for MaxParameterCount for
 setting EAs

Windows servers will refuse trans2 requests which use excessive
request parameters. From [MS-CIFS|:
<239> Section 3.3.5.2.5: Windows NT servers fail a transaction request with
STATUS_INSUFF_SERVER_RESOURCES, if (SetupCount + MaxSetupCount +
TotalParameterCount + MaxParameterCount + TotalDataCount + MaxDataCount)
is greater than 65*1024.

When attempting to set a large list of EAs for a file, this limit can be
hit when using CLI_BUFFER_SIZE as MaxDataCount
while the TRANS2_SET_PATH_INFORMATION response has no data reply,
only parameters (section 2.2.6.7.2).

Be as minimal as possible here to allow a maximum number of EAs to
be written.

Bug: https://bugzilla.samba.org/show_bug.cgi?id=11354

Signed-off-by: Christian Ambach <ambi at samba.org>
---
 source3/libsmb/clifile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/source3/libsmb/clifile.c b/source3/libsmb/clifile.c
index 0e790cd..684f263 100644
--- a/source3/libsmb/clifile.c
+++ b/source3/libsmb/clifile.c
@@ -4593,7 +4593,7 @@ static NTSTATUS cli_set_ea(struct cli_state *cli, uint16_t setup_val,
 	status = cli_trans(talloc_tos(), cli, SMBtrans2, NULL, -1, 0, 0,
 			   setup, 1, 0,
 			   param, param_len, 2,
-			   data,  data_len, CLI_BUFFER_SIZE,
+			   data,  data_len, 0,
 			   NULL,
 			   NULL, 0, NULL, /* rsetup */
 			   NULL, 0, NULL, /* rparam */
-- 
1.9.1



More information about the samba-technical mailing list