Skip to content

Commit 810c631

Browse files
mdouchametan-ucw
authored andcommitted
containers/pidns*: Fix PID checks
Some glibc versions cache the return value of getpid() which can result in getpid() calls returning parent PID when the process was created using direct clone() syscall. Use tst_getpid() to get the correct child PID. Signed-off-by: Martin Doucha <[email protected]> Reviewed-by: Cyril Hrubis <[email protected]>
1 parent 9591948 commit 810c631

File tree

11 files changed

+12
-12
lines changed

11 files changed

+12
-12
lines changed

testcases/kernel/containers/pidns/pidns01.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ static void child_func(void)
2121
{
2222
pid_t cpid, ppid;
2323

24-
cpid = getpid();
24+
cpid = tst_getpid();
2525
ppid = getppid();
2626

2727
TST_EXP_EQ_LI(cpid, 1);

testcases/kernel/containers/pidns/pidns04.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
static void child_func(void)
1919
{
20-
pid_t cpid = getpid();
20+
pid_t cpid = tst_getpid();
2121
pid_t ppid = getppid();
2222

2323
TST_EXP_EQ_LI(cpid, 1);

testcases/kernel/containers/pidns/pidns06.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
static void child_func(int pid)
1818
{
19-
pid_t cpid = getpid();
19+
pid_t cpid = tst_getpid();
2020
pid_t ppid = getppid();
2121

2222
TST_EXP_EQ_LI(cpid, 1);

testcases/kernel/containers/pidns/pidns10.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
static void child_func(void)
1818
{
19-
pid_t cpid = getpid();
19+
pid_t cpid = tst_getpid();
2020
pid_t ppid = getppid();
2121

2222
TST_EXP_EQ_LI(cpid, 1);

testcases/kernel/containers/pidns/pidns12.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ static void child_func(void)
2929
{
3030
struct sigaction sa;
3131

32-
TST_EXP_EQ_LI(getpid(), 1);
32+
TST_EXP_EQ_LI(tst_getpid(), 1);
3333
TST_EXP_EQ_LI(getppid(), 0);
3434

3535
sa.sa_flags = SA_SIGINFO;

testcases/kernel/containers/pidns/pidns13.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ static void child_signal_handler(int sig, siginfo_t *si,
4242
void *unused LTP_ATTRIBUTE_UNUSED)
4343
{
4444
tst_res(TWARN, "cinit(pid %d): Caught signal! sig=%d, si_fd=%d, si_code=%d",
45-
getpid(), sig, si->si_fd, si->si_code);
45+
tst_getpid(), sig, si->si_fd, si->si_code);
4646
}
4747

4848
static void child_fn(unsigned int cinit_no)
@@ -54,7 +54,7 @@ static void child_fn(unsigned int cinit_no)
5454
pid_t pid, ppid;
5555
int flags;
5656

57-
pid = tst_syscall(__NR_getpid);
57+
pid = tst_getpid();
5858
ppid = getppid();
5959
if (pid != CHILD_PID || ppid != PARENT_PID)
6060
tst_brk(TBROK, "cinit%u: pidns not created.", cinit_no);

testcases/kernel/containers/pidns/pidns16.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ static void child_func(void)
3030
struct sigaction sa;
3131
pid_t cpid, ppid;
3232

33-
cpid = getpid();
33+
cpid = tst_getpid();
3434
ppid = getppid();
3535

3636
TST_EXP_EQ_LI(cpid, 1);

testcases/kernel/containers/pidns/pidns17.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ static void child_func(void)
2424
unsigned int i;
2525
pid_t cpid, ppid;
2626

27-
cpid = getpid();
27+
cpid = tst_getpid();
2828
ppid = getppid();
2929

3030
TST_EXP_EQ_LI(cpid, 1);

testcases/kernel/containers/pidns/pidns20.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ static void child_func(void)
3232
sigset_t newset;
3333
pid_t cpid, ppid;
3434

35-
cpid = getpid();
35+
cpid = tst_getpid();
3636
ppid = getppid();
3737

3838
if (cpid != 1 || ppid != 0) {

testcases/kernel/containers/pidns/pidns30.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ static void child_func(void)
4747
struct sigevent notif;
4848
mqd_t mqd_child;
4949

50-
cpid = getpid();
50+
cpid = tst_getpid();
5151
ppid = getppid();
5252

5353
TST_EXP_EQ_LI(cpid, 1);

0 commit comments

Comments
 (0)