Temporary file name template passed to __gen_tempname had no "XXXXXX" in it, so __gen_tempname returned EINVAL which led to sem_open failure.
Fixes NPTL tests tst-sem4, tst-sem7, tst-sem8, tst-sem9. Signed-off-by: Roman I Khimov <[email protected]> --- libpthread/nptl/sem_open.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/libpthread/nptl/sem_open.c b/libpthread/nptl/sem_open.c index 8ded82c..28dd3aa 100644 --- a/libpthread/nptl/sem_open.c +++ b/libpthread/nptl/sem_open.c @@ -333,7 +333,8 @@ sem_open (const char *name, int oflag, ...) sizeof (sem_t) - sizeof (struct new_sem)); tmpfname = (char *) alloca (mountpoint.dirlen + 6 + 1); - mempcpy (tmpfname, mountpoint.dir, mountpoint.dirlen); + mempcpy (mempcpy (tmpfname, mountpoint.dir, mountpoint.dirlen), + "XXXXXX", 7); fd = __gen_tempname (tmpfname, __GT_FILE, mode); if (fd == -1) -- 1.5.6.5 _______________________________________________ uClibc mailing list [email protected] http://lists.busybox.net/mailman/listinfo/uclibc
