Skip to content

Commit

Permalink
selftests/efivarfs: add check for disallowing file truncation
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: Ard Biesheuvel <[email protected]>
  • Loading branch information
James Bottomley authored and ardbiesheuvel committed Jan 19, 2025
1 parent 8b4bc20 commit 8a32d46
Showing 1 changed file with 23 additions and 0 deletions.
23 changes: 23 additions & 0 deletions tools/testing/selftests/efivarfs/efivarfs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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

0 comments on commit 8a32d46

Please sign in to comment.