[PATCH] nptl: fix sem_open with O_CREAT
Roman I Khimov
khimov at altell.ru
Sun May 2 19:45:27 UTC 2010
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 <khimov at altell.ru>
---
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
More information about the uClibc
mailing list