Improve test a bit, now that we have fstat(2) support.

The test was support to check if SUID/SGID bits are removed on first
write, but actually we were checking if they were removed after close.
Now we can check if SUID/SGID bits are gone after first write.

While here add checks to see if when both SUID and SGID bits are set they are
both cleared on first write.
This commit is contained in:
pjd 2011-03-10 20:59:02 +00:00
parent 98d68ca741
commit 5f0f37248d

View File

@ -6,7 +6,7 @@ desc="verify SUID/SGID bit behaviour"
dir=`dirname $0`
. ${dir}/../misc.sh
echo "1..10"
echo "1..14"
n0=`namegen`
n1=`namegen`
@ -18,13 +18,19 @@ cd ${n2}
# Check whether writing to the file by non-owner clears the SUID.
expect 0 create ${n0} 04777
expect 0 -u 65534 -g 65534 open ${n0} O_WRONLY : write 0 x
expect 0777 -u 65534 -g 65534 open ${n0} O_WRONLY : write 0 x : fstat 0 mode
expect 0777 stat ${n0} mode
expect 0 unlink ${n0}
# Check whether writing to the file by non-owner clears the SGID.
expect 0 create ${n0} 02777
expect 0 -u 65534 -g 65534 open ${n0} O_RDWR : write 0 x
expect 0777 -u 65534 -g 65534 open ${n0} O_RDWR : write 0 x : fstat 0 mode
expect 0777 stat ${n0} mode
expect 0 unlink ${n0}
# Check whether writing to the file by non-owner clears the SUID+SGID.
expect 0 create ${n0} 06777
expect 0777 -u 65534 -g 65534 open ${n0} O_RDWR : write 0 x : fstat 0 mode
expect 0777 stat ${n0} mode
expect 0 unlink ${n0}