51 lines
1.1 KiB
C
51 lines
1.1 KiB
C
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
/*
|
|
* Copyright (c) 2019 FUJITSU LIMITED. All rights reserved.
|
|
* Author: Yang Xu <xuyang2018.jy@cn.fujitsu.com>
|
|
*
|
|
* dummy program which is used by prctl06 testcase
|
|
*/
|
|
#define TST_NO_DEFAULT_MAIN
|
|
#include "prctl06.h"
|
|
|
|
|
|
int main(int argc, char **argv)
|
|
{
|
|
struct passwd *pw;
|
|
int proc_flag;
|
|
|
|
pw = SAFE_GETPWNAM("nobody");
|
|
|
|
tst_reinit();
|
|
if (argc != 3)
|
|
tst_brk(TFAIL, "argc is %d, expected 3", argc);
|
|
|
|
if (!strcmp(argv[2], "Yes"))
|
|
proc_flag = 1;
|
|
else
|
|
proc_flag = 0;
|
|
check_no_new_privs(1, argv[1], proc_flag);
|
|
|
|
TEST(getegid());
|
|
if (TST_RET == 0)
|
|
tst_res(TFAIL,
|
|
"%s getegid() returns 0 unexpectedly, it gains root privileges",
|
|
argv[1]);
|
|
if (TST_RET == pw->pw_gid)
|
|
tst_res(TPASS,
|
|
"%s getegid() returns nobody, it doesn't gain root privileges",
|
|
argv[1]);
|
|
|
|
TEST(geteuid());
|
|
if (TST_RET == 0)
|
|
tst_res(TFAIL,
|
|
"%s geteuid() returns 0 unexpectedly, it gains root privileges",
|
|
argv[1]);
|
|
if (TST_RET == pw->pw_uid)
|
|
tst_res(TPASS,
|
|
"%s geteuid() returns nobody, it doesn't gain root privileges",
|
|
argv[1]);
|
|
|
|
return 0;
|
|
}
|