mirror of
https://github.com/torvalds/linux.git
synced 2026-05-23 14:42:08 +02:00
selftests/efivarfs: add check for disallowing file truncation
Now that the ability of arbitrary writes to set the inode size is fixed, verify that a variable file accepts a truncation operation but does not change the stat size because of it. Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com> Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
This commit is contained in:
parent
8b4bc207f9
commit
8a32d46b20
|
|
@ -202,6 +202,28 @@ test_invalid_filenames()
|
|||
exit $ret
|
||||
}
|
||||
|
||||
test_no_set_size()
|
||||
{
|
||||
local attrs='\x07\x00\x00\x00'
|
||||
local file=$efivarfs_mount/$FUNCNAME-$test_guid
|
||||
local ret=0
|
||||
|
||||
printf "$attrs\x00" > $file
|
||||
[ -e $file -a -s $file ] || exit 1
|
||||
chattr -i $file
|
||||
: > $file
|
||||
if [ $? != 0 ]; then
|
||||
echo "variable file failed to accept truncation"
|
||||
ret=1
|
||||
elif [ -e $file -a ! -s $file ]; then
|
||||
echo "file can be truncated to zero size"
|
||||
ret=1
|
||||
fi
|
||||
rm $file || exit 1
|
||||
|
||||
exit $ret
|
||||
}
|
||||
|
||||
check_prereqs
|
||||
|
||||
rc=0
|
||||
|
|
@ -214,5 +236,6 @@ run_test test_zero_size_delete
|
|||
run_test test_open_unlink
|
||||
run_test test_valid_filenames
|
||||
run_test test_invalid_filenames
|
||||
run_test test_no_set_size
|
||||
|
||||
exit $rc
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user