• Colin Ian King's avatar
    cifs: fix memory leak of an allocated cifs_ntsd structure · cb891e7a
    Colin Ian King authored
    The call to SMB2_queary_acl can allocate memory to pntsd and also
    return a failure via a call to SMB2_query_acl (and then query_info).
    This occurs when query_info allocates the structure and then in
    query_info the call to smb2_validate_and_copy_iov fails. Currently the
    failure just returns without kfree'ing pntsd hence causing a memory
    leak.
    
    Currently, *data is allocated if it's not already pointing to a buffer,
    so it needs to be kfree'd only if was allocated in query_info, so the
    fix adds an allocated flag to track this.  Also set *dlen to zero on
    an error just to be safe since *data is kfree'd.
    
    Also set errno to -ENOMEM if the allocation of *data fails.
    Signed-off-by: 's avatarColin Ian King <colin.king@canonical.com>
    Signed-off-by: 's avatarSteve French <stfrench@microsoft.com>
    Reviewed-by: 's avatarDan Carpener <dan.carpenter@oracle.com>
    cb891e7a
smb2pdu.c 121 KB