[LTP] [PATCH 3/3] syscalls/semctl01: Convert into new api
xuyang2018.jy@fujitsu.com
xuyang2018.jy@fujitsu.com
Fri Apr 9 09:59:41 CEST 2021
Hi Cyril, Alexey
> Hi!
>>> Does it really require root?
>> See ftok(3) manpage, it said "The ftok() function uses the identity of
>> the file named by the given pathname (which must refer to an existing,
>> accessible file)".
>> ftok source code
>> key_t
>> ftok (const char *pathname, int proj_id)
>> {
>> struct stat64 st;
>> key_t key;
>>
>> if (__stat64 (pathname,&st)< 0)
>> return (key_t) -1;
>>
>> key = ((st.st_ino& 0xffff) | ((st.st_dev& 0xff)<< 16)
>> | ((proj_id& 0xff)<< 24));
>>
>> return key;
>> }
>>
>> To ensure ftok succeed, we must require root. Or, modify GETIPCKEY api,
>> we can use tmp directory. Anyhow, I will send a v2 to remove useless
>> funtion declartion firstly.
>
> Unless we are sharing the semaphore with a process that wasn't worked
> from the test process we can also pass IPC_PRIVATE instead of the key.
My ltp working directory is /root/ltp, then run "su xuyang" to run
semctl01 case under /root/ltp/testcases/kernel/syscalls/ipc/semctl, then
I got ftok failure as below:
[xuyang@localhost semctl]$ ./semctl01
tst_test.c:1289: TINFO: Timeout per run is 0h 05m 00s
libnewipc.c:44: TBROK: ftok() failed at semctl01.c:308: EACCES (13)
I guess this situation maybe meaningless(Usually, user has access
privilege for their ltp directory or install directory ). So needs_root
is useless.
I guess maintainers can remove this directly instead of sending a v3.
Best Regards
Yang Xu
>
More information about the ltp
mailing list