From: Shi Weihua <shiwh@cn.fujitsu.com>
To: ltp-list <ltp-list@lists.sourceforge.net>
Subject: [LTP] [PATCH] sysctl03: sysctl returns EACCES after 2.6.33-rc1
Date: Mon, 01 Feb 2010 19:25:06 +0800 [thread overview]
Message-ID: <4B66BA12.1050707@cn.fujitsu.com> (raw)
The syscall of sysctl has been changed function call process on 2.6.33-rc1.
So we should change some code about sysctl.
Before 2.6.33-rc1:
do_sysctl
->parse_table
->sysctl_perm (will return EPERM sometime)
->do_sysctl_strategy
->sysctl_perm (will return EPERM sometime)
...
After 2.6.33-rc1:
do_sysctl
->binary_sysctl
check enable to access or not (will return EACCES some time)
...
I fixed sysctl03, other cases of sysctl are OK.
This patch works on 2.6.31.5-127.fc12.x86_64, 2.6.32, 2.6.33-rc1,
and 2.6.33-rc6.
Signed-off-by: Shi Weihua <shiwh@cn.fujitsu.com>
---
--- testcases/kernel/syscalls/sysctl/sysctl03.c.orig 2010-02-02 18:15:56.000000000 +0800
+++ testcases/kernel/syscalls/sysctl/sysctl03.c 2010-02-02 18:49:40.000000000 +0800
@@ -22,15 +22,18 @@
* sysctl03.c
*
* DESCRIPTION
- * Testcase to check that sysctl(2) sets errno to EPERM correctly.
+ * Testcase to check that sysctl(2) sets errno to EPERM or EACCES
+ * correctly. But it will return EACCES on kernels that are 2.6.33-rc1
+ * and higher.
*
* ALGORITHM
* a. Call sysctl(2) as a root user, and attempt to write data
* to the kernel_table[]. Since the table does not have write
- * permissions even for the root, it should fail EPERM.
+ * permissions even for the root, it should fail EPERM or EACCES.
* b. Call sysctl(2) as a non-root user, and attempt to write data
* to the kernel_table[]. Since the table does not have write
- * permission for the regular user, it should fail with EPERM.
+ * permission for the regular user, it should fail with EPERM
+ * or EACCES.
*
* USAGE: <for command-line>
* sysctl03 [-c n] [-e] [-i n] [-I x] [-P x] [-t]
@@ -43,6 +46,7 @@
*
* HISTORY
* 07/2001 Ported by Wayne Boyer
+ * 02/2010 Updated by shiwh@cn.fujitsu.com
*
* RESTRICTIONS
* Test must be run as root.
@@ -82,6 +86,7 @@ int main(int ac, char **av)
{
int lc;
char *msg;
+ int exp_eno;
char osname[OSNAMESZ];
int osnamelth, status;
@@ -96,6 +101,13 @@ int main(int ac, char **av)
setup();
+ if ((tst_kvercmp(2, 6, 32)) <= 0){
+ exp_eno = EPERM;
+ } else {
+ exp_eno = EACCES;
+ exp_enos[0] = EACCES;
+ }
+
TEST_EXP_ENOS(exp_enos);
/* check looping state if -i option is given */
@@ -114,13 +126,13 @@ int main(int ac, char **av)
} else {
TEST_ERROR_LOG(TEST_ERRNO);
- if (TEST_ERRNO != EPERM) {
+ if (TEST_ERRNO != exp_eno) {
tst_resm(TFAIL,
- "Expected EPERM (%d), got %d: %s",
- EPERM, TEST_ERRNO,
+ "Expected %s (%d), got %d: %s",
+ strerror(exp_eno), exp_eno, TEST_ERRNO,
strerror(TEST_ERRNO));
} else {
- tst_resm(TPASS, "Got expected EPERM error");
+ tst_resm(TPASS, "Got expected %s error", strerror(exp_eno));
}
}
@@ -147,12 +159,12 @@ int main(int ac, char **av)
} else {
TEST_ERROR_LOG(TEST_ERRNO);
- if (TEST_ERRNO != EPERM) {
- tst_resm(TFAIL, "Expected EPERM, got "
- "%d", TEST_ERRNO);
+ if (TEST_ERRNO != exp_eno) {
+ tst_resm(TFAIL, "Expected %s, got "
+ "%d", strerror(exp_eno), TEST_ERRNO);
} else {
- tst_resm(TPASS, "Got expected EPERM "
- "error");
+ tst_resm(TPASS, "Got expected %s "
+ "error", strerror(exp_eno));
}
}
------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
next reply other threads:[~2010-02-01 11:25 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-01 11:25 Shi Weihua [this message]
-- strict thread matches above, loose matches on Subject: below --
2010-02-17 8:01 [LTP] [PATCH] sysctl03: sysctl returns EACCES after 2.6.33-rc1 Rishikesh
2010-02-17 17:10 ` Garrett Cooper
2010-02-18 4:25 ` Rishikesh K Rajak
2010-02-22 7:15 ` Shi Weihua
2010-02-22 7:44 ` Garrett Cooper
2010-02-23 1:48 ` Shi Weihua
2010-02-25 1:18 ` Garrett Cooper
2010-03-04 8:38 ` Shi Weihua
2010-03-04 18:35 ` Garrett Cooper
2010-03-04 18:35 ` Garrett Cooper
2010-03-04 18:37 ` Garrett Cooper
2010-03-04 18:37 ` Garrett Cooper
2010-03-04 19:57 ` Eric W. Biederman
2010-03-04 19:57 ` Eric W. Biederman
2010-03-05 7:20 ` Garrett Cooper
2010-03-05 7:20 ` Garrett Cooper
2010-03-05 7:50 ` Eric W. Biederman
2010-03-05 7:50 ` Eric W. Biederman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4B66BA12.1050707@cn.fujitsu.com \
--to=shiwh@cn.fujitsu.com \
--cc=ltp-list@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.