fscrypt: calculate NUL-padding length in one place only
authorEric Biggers <ebiggers@google.com>
Fri, 12 Jan 2018 04:30:08 +0000 (23:30 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Fri, 12 Jan 2018 04:30:08 +0000 (23:30 -0500)
commit50c961de59ec841c1185c18457e6dab227f3bbf3
tree3db5eb9b6ffe59dd34ff325810869891b2fed53e
parent0eaab5b10621e84868df911dad43d330fa1b9bc8
fscrypt: calculate NUL-padding length in one place only

Currently, when encrypting a filename (either a real filename or a
symlink target) we calculate the amount of NUL-padding twice: once
before encryption and once during encryption in fname_encrypt().  It is
needed before encryption to allocate the needed buffer size as well as
calculate the size the symlink target will take up on-disk before
creating the symlink inode.  Calculating the size during encryption as
well is redundant.

Remove this redundancy by always calculating the exact size beforehand,
and making fname_encrypt() just add as much NUL padding as is needed to
fill the output buffer.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/crypto/fname.c
fs/crypto/fscrypt_private.h
fs/crypto/hooks.c