fix sem_close regression test
authorÉrico Nogueira <ericonr@disroot.org>
Tue, 27 Apr 2021 20:46:17 +0000 (17:46 -0300)
committerSzabolcs Nagy <nsz@port70.net>
Tue, 27 Apr 2021 20:51:38 +0000 (20:51 +0000)
sem_close with O_CREAT takes 4 parameters, not 3. The last parameter,
the initial value for the semaphore, had an arbitrary value from
whatever was on the stack, and lead to spurious failures with EINVAL
when it happened to be greater than SEM_VALUE_MAX. Since there isn't
error checking in this test, this lead to a segfault in the first
sem_post call.

src/regression/sem_close-unmap.c

index c19e082..fdf750e 100644 (file)
@@ -9,7 +9,7 @@ int main()
        char buf[] = "mysemXXXXXX";
        if (!mktemp(buf)) return 1;
        // open twice
-       sem_t *sem = sem_open(buf, O_CREAT|O_EXCL, 0600);
+       sem_t *sem = sem_open(buf, O_CREAT|O_EXCL, 0600, 0);
        sem_open(buf, 0);
        sem_unlink(buf);
        // close once