• Tyler Hicks's avatar
    eCryptfs: Allow 2 scatterlist entries for encrypted filenames · 8d08dab7
    Tyler Hicks authored
    The buffers allocated while encrypting and decrypting long filenames can
    sometimes straddle two pages. In this situation, virt_to_scatterlist()
    will return -ENOMEM, causing the operation to fail and the user will get
    scary error messages in their logs:
    
    kernel: ecryptfs_write_tag_70_packet: Internal error whilst attempting
    to convert filename memory to scatterlist; expected rc = 1; got rc =
    [-12]. block_aligned_filename_size = [272]
    kernel: ecryptfs_encrypt_filename: Error attempting to generate tag 70
    packet; rc = [-12]
    kernel: ecryptfs_encrypt_and_encode_filename: Error attempting to
    encrypt filename; rc = [-12]
    kernel: ecryptfs_lookup: Error attempting to encrypt and encode
    filename; rc = [-12]
    
    The solution is to allow up to 2 scatterlist entries to be used.
    Signed-off-by: default avatarTyler Hicks <tyhicks@linux.vnet.ibm.com>
    Cc: <stable@kernel.org>
    8d08dab7
keystore.c 78.8 KB