binfmt_elf: switch to new creds when switching to new mm
* Adjusting the regression tests appropriately allows the kernel and security teams to use QRT's test-apparmor.py to test kernel and userspace AppArmor changes with confidence
[Test Case]
$ apt-get source apparmor
$ cd tests/regression/apparmor
$ make USE_SYSTEM=1
$ sudo bash exec_stack.sh
running exec_stack
/tmp/testlibRpZj1Y/source/yakkety/apparmor-2.10.95/tests/regression/apparmor/prologue.inc: line 219: 608 Segmentation fault $testexec "$@" > $outfile 2>&1
Error: transition failed. Test 'EXEC_STACK (2 stacked - file)' was expected to 'fail'. Reason for failure expect errno 13 != 139
/tmp/testlibRpZj1Y/source/yakkety/apparmor-2.10.95/tests/regression/apparmor/prologue.inc: line 219: 610 Segmentation fault $testexec "$@" > $outfile 2>&1
Error: transition failed. Test 'EXEC_STACK (2 stacked - otherfile)' was expected to 'fail'. Reason for failure expect errno 13 != 139
/tmp/testlibRpZj1Y/source/yakkety/apparmor-2.10.95/tests/regression/apparmor/prologue.inc: line 219: 612 Segmentation fault $testexec "$@" > $outfile 2>&1
Error: transition failed. Test 'EXEC_STACK (2 stacked - thirdfile)' was expected to 'fail'. Reason for failure expect errno 13 != 139
/tmp/testlibRpZj1Y/source/yakkety/apparmor-2.10.95/tests/regression/apparmor/prologue.inc: line 219: 613 Segmentation fault $testexec "$@" > $outfile 2>&1
Error: transition failed. Test 'EXEC_STACK (2 stacked - sharedfile)' was expected to 'pass'. Reason for failure 'killed by signal 11'
/tmp/testlibRpZj1Y/source/yakkety/apparmor-2.10.95/tests/regression/apparmor/prologue.inc: line 219: 620 Segmentation fault $testexec "$@" > $outfile 2>&1
Error: transition failed. Test 'EXEC_STACK (2 stacked - okcon)' was expected to 'pass'. Reason for failure 'killed by signal 11'
/tmp/testlibRpZj1Y/source/yakkety/apparmor-2.10.95/tests/regression/apparmor/prologue.inc: line 219: 628 Segmentation fault $testexec "$@" > $outfile 2>&1
Error: transition failed. Test 'EXEC_STACK (2 stacked - bad label)' was expected to 'fail'. Reason for failure 'killed by signal 11'
/tmp/testlibRpZj1Y/source/yakkety/apparmor-2.10.95/tests/regression/apparmor/prologue.inc: line 219: 634 Segmentation fault $testexec "$@" > $outfile 2>&1
Error: transition failed. Test 'EXEC_STACK (2 stacked - bad mode)' was expected to 'fail'. Reason for failure 'killed by signal 11'
/tmp/testlibRpZj1Y/source/yakkety/apparmor-2.10.95/tests/regression/apparmor/prologue.inc: line 219: 741 Segmentation fault $testexec "$@" > $outfile 2>&1
Error: transition failed. Test 'EXEC_STACK (3 stacked - file)' was expected to 'fail'. Reason for failure expect errno 13 != 139
/tmp/testlibRpZj1Y/source/yakkety/apparmor-2.10.95/tests/regression/apparmor/prologue.inc: line 219: 745 Segmentation fault $testexec "$@" > $outfile 2>&1
Error: transition failed. Test 'EXEC_STACK (3 stacked - otherfile)' was expected to 'fail'. Reason for failure expect errno 13 != 139
/tmp/testlibRpZj1Y/source/yakkety/apparmor-2.10.95/tests/regression/apparmor/prologue.inc: line 219: 747 Segmentation fault $testexec "$@" > $outfile 2>&1
Error: transition failed. Test 'EXEC_STACK (3 stacked - thirdfile)' was expected to 'fail'. Reason for failure expect errno 13 != 139
/tmp/testlibRpZj1Y/source/yakkety/apparmor-2.10.95/tests/regression/apparmor/prologue.inc: line 219: 748 Segmentation fault $testexec "$@" > $outfile 2>&1
Error: transition failed. Test 'EXEC_STACK (3 stacked - sharedfile)' was expected to 'pass'. Reason for failure 'killed by signal 11'
/tmp/testlibRpZj1Y/source/yakkety/apparmor-2.10.95/tests/regression/apparmor/prologue.inc: line 219: 754 Segmentation fault $testexec "$@" > $outfile 2>&1
Error: transition failed. Test 'EXEC_STACK (3 stacked - okcon)' was expected to 'pass'. Reason for failure 'killed by signal 11'
/tmp/testlibRpZj1Y/source/yakkety/apparmor-2.10.95/tests/regression/apparmor/prologue.inc: line 219: 833 Segmentation fault $testexec "$@" > $outfile 2>&1
Error: transition failed. Test 'EXEC_STACK (3 stacked - old AA WARN)' was expected to 'pass'. Reason for failure 'killed by signal 11'
The previous command should result in no output and return value of 0 once the regression test is properly updated.
[Regression Potential]
* This is an extremely low risk change since it only touches regression testing code that is not user-facing.
[Impact]
* The exec_stack.sh regression test fails due to a behavior change in 4.8 kernels from this patch:
commit 9f834ec18defc36 9d73ccf9e87a279 0bfa05bf46
Author: Linus Torvalds <email address hidden>
Date: Mon Aug 22 16:41:46 2016 -0700
binfmt_elf: switch to new creds when switching to new mm
* Adjusting the regression tests appropriately allows the kernel and security teams to use QRT's test-apparmor.py to test kernel and userspace AppArmor changes with confidence
[Test Case]
$ apt-get source apparmor n/apparmor j1Y/source/ yakkety/ apparmor- 2.10.95/ tests/regressio n/apparmor/ prologue. inc: line 219: 608 Segmentation fault $testexec "$@" > $outfile 2>&1 j1Y/source/ yakkety/ apparmor- 2.10.95/ tests/regressio n/apparmor/ prologue. inc: line 219: 610 Segmentation fault $testexec "$@" > $outfile 2>&1 j1Y/source/ yakkety/ apparmor- 2.10.95/ tests/regressio n/apparmor/ prologue. inc: line 219: 612 Segmentation fault $testexec "$@" > $outfile 2>&1 j1Y/source/ yakkety/ apparmor- 2.10.95/ tests/regressio n/apparmor/ prologue. inc: line 219: 613 Segmentation fault $testexec "$@" > $outfile 2>&1 j1Y/source/ yakkety/ apparmor- 2.10.95/ tests/regressio n/apparmor/ prologue. inc: line 219: 620 Segmentation fault $testexec "$@" > $outfile 2>&1 j1Y/source/ yakkety/ apparmor- 2.10.95/ tests/regressio n/apparmor/ prologue. inc: line 219: 628 Segmentation fault $testexec "$@" > $outfile 2>&1 j1Y/source/ yakkety/ apparmor- 2.10.95/ tests/regressio n/apparmor/ prologue. inc: line 219: 634 Segmentation fault $testexec "$@" > $outfile 2>&1 j1Y/source/ yakkety/ apparmor- 2.10.95/ tests/regressio n/apparmor/ prologue. inc: line 219: 741 Segmentation fault $testexec "$@" > $outfile 2>&1 j1Y/source/ yakkety/ apparmor- 2.10.95/ tests/regressio n/apparmor/ prologue. inc: line 219: 745 Segmentation fault $testexec "$@" > $outfile 2>&1 j1Y/source/ yakkety/ apparmor- 2.10.95/ tests/regressio n/apparmor/ prologue. inc: line 219: 747 Segmentation fault $testexec "$@" > $outfile 2>&1 j1Y/source/ yakkety/ apparmor- 2.10.95/ tests/regressio n/apparmor/ prologue. inc: line 219: 748 Segmentation fault $testexec "$@" > $outfile 2>&1 j1Y/source/ yakkety/ apparmor- 2.10.95/ tests/regressio n/apparmor/ prologue. inc: line 219: 754 Segmentation fault $testexec "$@" > $outfile 2>&1 j1Y/source/ yakkety/ apparmor- 2.10.95/ tests/regressio n/apparmor/ prologue. inc: line 219: 833 Segmentation fault $testexec "$@" > $outfile 2>&1
$ cd tests/regressio
$ make USE_SYSTEM=1
$ sudo bash exec_stack.sh
running exec_stack
/tmp/testlibRpZ
Error: transition failed. Test 'EXEC_STACK (2 stacked - file)' was expected to 'fail'. Reason for failure expect errno 13 != 139
/tmp/testlibRpZ
Error: transition failed. Test 'EXEC_STACK (2 stacked - otherfile)' was expected to 'fail'. Reason for failure expect errno 13 != 139
/tmp/testlibRpZ
Error: transition failed. Test 'EXEC_STACK (2 stacked - thirdfile)' was expected to 'fail'. Reason for failure expect errno 13 != 139
/tmp/testlibRpZ
Error: transition failed. Test 'EXEC_STACK (2 stacked - sharedfile)' was expected to 'pass'. Reason for failure 'killed by signal 11'
/tmp/testlibRpZ
Error: transition failed. Test 'EXEC_STACK (2 stacked - okcon)' was expected to 'pass'. Reason for failure 'killed by signal 11'
/tmp/testlibRpZ
Error: transition failed. Test 'EXEC_STACK (2 stacked - bad label)' was expected to 'fail'. Reason for failure 'killed by signal 11'
/tmp/testlibRpZ
Error: transition failed. Test 'EXEC_STACK (2 stacked - bad mode)' was expected to 'fail'. Reason for failure 'killed by signal 11'
/tmp/testlibRpZ
Error: transition failed. Test 'EXEC_STACK (3 stacked - file)' was expected to 'fail'. Reason for failure expect errno 13 != 139
/tmp/testlibRpZ
Error: transition failed. Test 'EXEC_STACK (3 stacked - otherfile)' was expected to 'fail'. Reason for failure expect errno 13 != 139
/tmp/testlibRpZ
Error: transition failed. Test 'EXEC_STACK (3 stacked - thirdfile)' was expected to 'fail'. Reason for failure expect errno 13 != 139
/tmp/testlibRpZ
Error: transition failed. Test 'EXEC_STACK (3 stacked - sharedfile)' was expected to 'pass'. Reason for failure 'killed by signal 11'
/tmp/testlibRpZ
Error: transition failed. Test 'EXEC_STACK (3 stacked - okcon)' was expected to 'pass'. Reason for failure 'killed by signal 11'
/tmp/testlibRpZ
Error: transition failed. Test 'EXEC_STACK (3 stacked - old AA WARN)' was expected to 'pass'. Reason for failure 'killed by signal 11'
The previous command should result in no output and return value of 0 once the regression test is properly updated.
[Regression Potential]
* This is an extremely low risk change since it only touches regression testing code that is not user-facing.