diff options
author | Zhihao Cheng <chengzhihao1@huawei.com> | 2023-09-23 11:28:59 +0800 |
---|---|---|
committer | Richard Weinberger <richard@nod.at> | 2023-10-28 23:19:08 +0200 |
commit | 75690493591fe283e4c92a3ba7c4420e9858abdb (patch) | |
tree | 6a9e05748db7f109e8106e93b9d3bf2824398bf9 /samples/landlock | |
parent | d07cec9c238ae8fc6c1a9f3f5d30a2f8ec6cdc71 (diff) |
ubifs: ubifs_link: Fix wrong name len calculating when UBIFS is encrypted
The length of dentry name is calculated after the raw name is encrypted,
except for ubifs_link(), which could make the size of dir underflow.
Here is a reproducer:
touch $TMP/file
mkdir $TMP/dir
stat $TMP/dir
for i in $(seq 1 8)
do
ln $TMP/file $TMP/dir/$i
unlink $TMP/dir/$i
done
stat $TMP/dir
The size of dir will be underflow(-96).
Fix it by calculating dentry name's length after the name is encrypted.
Fixes: f4f61d2cc6d8 ("ubifs: Implement encrypted filenames")
Reported-by: Roland Ruckerbauer <roland.ruckerbauer@robart.cc>
Link: https://lore.kernel.org/linux-mtd/1638777819.2925845.1695222544742.JavaMail.zimbra@robart.cc/T/#u
Signed-off-by: Zhihao Cheng <chengzhihao1@huawei.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
Diffstat (limited to 'samples/landlock')
0 files changed, 0 insertions, 0 deletions