eCryptfs: Regression in unencrypted filename symlinks

The addition of filename encryption caused a regression in unencrypted
filename symlink support. ecryptfs_copy_filename() is used when dealing
with unencrypted filenames and it reported that the new, copied filename
was a character longer than it should have been.

This caused the return value of readlink() to count the NULL byte of the
symlink target. Most applications don't care about the extra NULL byte,
but a version control system (bzr) helped in discovering the bug.

Signed-off-by: Tyler Hicks <tyhicks@linux.vnet.ibm.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by Tyler Hicks and committed by Linus Torvalds fd9fc842 eeb94855

+2 -2
+2 -2
fs/ecryptfs/crypto.c
··· 1716 { 1717 int rc = 0; 1718 1719 - (*copied_name) = kmalloc((name_size + 2), GFP_KERNEL); 1720 if (!(*copied_name)) { 1721 rc = -ENOMEM; 1722 goto out; ··· 1726 * in printing out the 1727 * string in debug 1728 * messages */ 1729 - (*copied_name_size) = (name_size + 1); 1730 out: 1731 return rc; 1732 }
··· 1716 { 1717 int rc = 0; 1718 1719 + (*copied_name) = kmalloc((name_size + 1), GFP_KERNEL); 1720 if (!(*copied_name)) { 1721 rc = -ENOMEM; 1722 goto out; ··· 1726 * in printing out the 1727 * string in debug 1728 * messages */ 1729 + (*copied_name_size) = name_size; 1730 out: 1731 return rc; 1732 }