s3: Fix stream marshalling to return the correct streaminfo status
commit492db227a016ea2ee812b27e6414831702dbd954
authorTim Prouty <tprouty@samba.org>
Tue, 23 Dec 2008 17:19:25 +0000 (23 09:19 -0800)
committerKarolin Seeger <kseeger@samba.org>
Wed, 28 Jan 2009 08:39:50 +0000 (28 09:39 +0100)
tree071d98cefee6b48a3ab43481f290abb9c2f99605
parentf09a7a3a753cb8457b521cd24f3399db253d14ea
s3: Fix stream marshalling to return the correct streaminfo status

When there are enough streams on a file to fill up the max_data_count
when responding to a trans2 streaminfo, samba is returning
NT_STATUS_BUFFER_TOO_SMALL.  Windows handles this by returning
NT_STATUS_BUFFER_OVERFLOW while still sending as much of the data that
it can fit into the buffer.  When the windows client sees
BUFFER_OVERFLOW, it retries the streaminfo with a larger buffer (2x).
The windows client starts at 2K and will continue increasing the
buffer size by two until it reaches 64K.  If the streams don't fit in
64K the windows client seems to give up.

This patch fixes marshall_stream_info to overfill the buffer by 1
stream so that send_trans2_replies can properly detect the overflow
and return the correct status.
(cherry picked from commit 7adf6961bfbbb3de07d40f397db5b5520d5f9d9f)
source/smbd/trans2.c