• Ronnie Sahlberg's avatar
    smb3: Fix rmdir compounding regression to strict servers · 271b9c0c
    Ronnie Sahlberg authored
    Some servers require that the setinfo matches the exact size,
    and in this case compounding changes introduced by
    commit c2e0fe3f ("cifs: make rmdir() use compounding")
    caused us to send 8 bytes (padded length) instead of 1 byte
    (the size of the structure).  See MS-FSCC section 2.4.11.
    
    Fixing this when we send a SET_INFO command for delete file
    disposition, then ends up as an iov of a single byte but this
    causes problems with SMB3 and encryption.
    
    To avoid this, instead of creating a one byte iov for the disposition value
    and then appending an additional iov with a 7 byte padding we now handle
    this as a single 8 byte iov containing both the disposition byte as well as
    the padding in one single buffer.
    Signed-off-by: default avatarRonnie Sahlberg <lsahlber@redhat.com>
    Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
    Acked-by: default avatarPaulo Alcantara <palcantara@suse.de>
    271b9c0c
smb2inode.c 12.6 KB