[LTP] What is wrong with this program ?

Cyril Hrubis
2020-04-28T09:52:22Z

Hi!
> #include "tst_test.h"
>
> static void run(void)
> {
> int fd;
>
> fd = SAFE_OPEN("file", O_RDWR | O_CREAT);
> SAFE_CLOSE(fd);
> fd = SAFE_OPEN("file", O_RDWR | O_CREAT);
> }
>
> static struct tst_test test = {
> .test_all = run,
> .needs_tmpdir = 1,
> };
>
>
> It fails with:
>
> safe_macros.c:230: BROK: foo.c:9: open(file,66,01) failed: EACCES (13)
>
> if run as a normal user and passes with sudo.

I guess that you forget to pass the mode argument to the first
SAFE_OPEN() and hence the second one fails because the garbage passed to
mode prevents normal users from opening the file.

--
Cyril Hrubis
chrubis@suse.cz