read and commented

doc
Mr.NaCl 7 months ago
parent fd0ab82e14
commit a835bb28b1

@ -53,6 +53,7 @@ static void Child()
while (i--) {
sleep(1);
}
//sleep for 10 second and exit;
exit(0);
}
@ -62,20 +63,22 @@ static int TestChild(VOID)
struct __user_cap_data_struct capdata[CAP_NUM];
struct __user_cap_data_struct capdatac[CAP_NUM];
struct timespec tp;
int ret;
int ret
//originalize struct
(void)memset_s(&capheader, sizeof(struct __user_cap_header_struct), 0, sizeof(struct __user_cap_header_struct));
(void)memset_s(capdata, CAP_NUM * sizeof(struct __user_cap_data_struct), 0,
CAP_NUM * sizeof(struct __user_cap_data_struct));
capdata[0].permitted = 0xffffffff;
capdata[1].permitted = 0xffffffff;
capheader.version = _LINUX_CAPABILITY_VERSION_3;
//set capbility to effective
capdata[CAP_TO_INDEX(CAP_SYS_NICE)].effective |= CAP_TO_MASK(CAP_SETPCAP);
capdata[CAP_TO_INDEX(CAP_SYS_NICE)].effective |= CAP_TO_MASK(CAP_SETUID);
capdata[CAP_TO_INDEX(CAP_SYS_NICE)].effective |= CAP_TO_MASK(CAP_KILL);
capdata[CAP_TO_INDEX(CAP_SYS_NICE)].effective |= CAP_TO_MASK(CAP_SYS_TIME);
capdata[CAP_TO_INDEX(CAP_SYS_NICE)].effective |= CAP_TO_MASK(CAP_SYS_NICE);
ret = capset(&capheader, &capdata[0]);
//use capset to check and get info
ret = capset(&capheader, &capdata[0]);
ICUNIT_ASSERT_EQUAL(ret, 0, ret);
ret = capget(&capheader, &capdatac[0]);
ICUNIT_ASSERT_EQUAL(ret, 0, ret);
@ -115,8 +118,8 @@ static int TestChild(VOID)
printf("e %d,p %d\n", capdatac[0].effective, capdatac[0].permitted);
}
capheader.pid = 0;
int pid = fork();
//try reset UID
int pid = fork();
if (pid == 0) {
ret = setuid(CHANGE_CHILD_UID);
ICUNIT_ASSERT_EQUAL(ret, 0, ret);
@ -160,6 +163,7 @@ static int TestCase(VOID)
int status = 0;
pid_t pid = fork();
ICUNIT_GOTO_WITHIN_EQUAL(pid, 0, 100000, pid, EXIT);
if (pid == 0) {
ret = TestChild();
exit(__LINE__);

Loading…
Cancel
Save