Problems handling chain offsets with OS/2's WriteAndX/ReadAndX

samba.10.maazl at spamgourmet.com samba.10.maazl at spamgourmet.com
Fri Aug 5 19:49:06 MDT 2011


I have problems with client errors and file corruptions with OS/2 
clients. They are triggered by writex commands that fail.

In fact the implementation of smbd/reply.c reply_write_and_X 
significantly changed since samba 3.2.something. And since that I have 
problems with OS/2 and eComStation clients.

This time MP3 files get corrupted when invoking an ID3 tag editor.
The "chained or invalid word length" check in is_valid_writeX_buffer 
triggers. Obviously this check ist contradictory to reply_and_write_X, 
which accepts 14 and *12* in word count (req->wct). I disabled the 
check, but this only raised further length check problems in process.c 
chain_reply.
I think samba can no longer handle WriteAndX with word count 12.

Samba version is 3.5.6

Level 10 log available at home.arcor.de/temp/log.mm2.gz
The interesting part starts at line 2065.

The same test case on a Windows server (XP) succeeds.
tshark log available at home.arcor.de/temp/tlog.txt.gz

Thie first difference is the returned offset in the WriteAndX reply. 
Windows returns 47 while samba returns 48 - whatever this means.
I disabled all checks in process.c chain_reply to get that far.


Any ideas how to get things working again?


Marcel



More information about the samba-technical mailing list