mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 12:28:41 +08:00
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>
This commit is contained in:
parent
eeb94855be
commit
fd9fc842bb
@ -1716,7 +1716,7 @@ static int ecryptfs_copy_filename(char **copied_name, size_t *copied_name_size,
|
||||
{
|
||||
int rc = 0;
|
||||
|
||||
(*copied_name) = kmalloc((name_size + 2), GFP_KERNEL);
|
||||
(*copied_name) = kmalloc((name_size + 1), GFP_KERNEL);
|
||||
if (!(*copied_name)) {
|
||||
rc = -ENOMEM;
|
||||
goto out;
|
||||
@ -1726,7 +1726,7 @@ static int ecryptfs_copy_filename(char **copied_name, size_t *copied_name_size,
|
||||
* in printing out the
|
||||
* string in debug
|
||||
* messages */
|
||||
(*copied_name_size) = (name_size + 1);
|
||||
(*copied_name_size) = name_size;
|
||||
out:
|
||||
return rc;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user