• Robert Sprowson's avatar
    Fix for truncating writes to servers that declare MaxBufferSize >= 64k smb.c,... · e6b73849
    Robert Sprowson authored
    Fix for truncating writes to servers that declare MaxBufferSize >= 64k smb.c, lines 2726 onwards: when chopping up the next buffer, make sure the size sent still fits in the SMB_COM_WRITE count field (16 bits). For completeness, make sure the estimate of bytes remaining is similarly saturated too.
    
    smb.c, lines 2711-2713: cifs-v1-spec-02 section 5.27 says the server always expects to receive up to 65535 bytes, so this test should not be subject to the negotiated MaxBufferSize, and is expected to often exceed it. Currently we use 32k, if this is ever increased we really ought to take into account MaxRawSize that the server tells us.
    
    Tested with a handful of files of power-of-2 sizes and odd sizes. Inspection in Wireshark looks OK. Variation of a diagnosis by Will Ling https://www.riscosopen.org/forum/forums/4/topics/8966
    
    Version 2.59. Tagged as 'LanManFS-2_59'
    e6b73849
VersionNum 829 Bytes