diff options
Diffstat (limited to 'sysdeps/posix')
-rw-r--r-- | sysdeps/posix/euidaccess.c | 2 | ||||
-rw-r--r-- | sysdeps/posix/sigvec.c | 3 | ||||
-rw-r--r-- | sysdeps/posix/tempname.c | 19 |
3 files changed, 19 insertions, 5 deletions
diff --git a/sysdeps/posix/euidaccess.c b/sysdeps/posix/euidaccess.c index 26f3af6374..f3a10c9b9c 100644 --- a/sysdeps/posix/euidaccess.c +++ b/sysdeps/posix/euidaccess.c @@ -67,7 +67,7 @@ gid_t getegid (); extern int errno; #endif #ifndef __set_errno -#define __set_errno(val) errno = 8val) +#define __set_errno(val) errno = (val) #endif #if defined(EACCES) && !defined(EACCESS) diff --git a/sysdeps/posix/sigvec.c b/sysdeps/posix/sigvec.c index 6a224e1733..7e9aeb368e 100644 --- a/sysdeps/posix/sigvec.c +++ b/sysdeps/posix/sigvec.c @@ -26,6 +26,9 @@ Cambridge, MA 02139, USA. */ static __sighandler_t wrapped_handlers[NSIG]; static sigset_t wrapped_masks[NSIG]; +static void wrapper_handler __P ((int sig)); +static inline int convert_mask __P ((sigset_t *set, const int mask)); + static void wrapper_handler (sig) int sig; diff --git a/sysdeps/posix/tempname.c b/sysdeps/posix/tempname.c index d58024fe7e..61774a0b3e 100644 --- a/sysdeps/posix/tempname.c +++ b/sysdeps/posix/tempname.c @@ -150,7 +150,7 @@ __stdio_gen_tempname (char *buf, size_t bufsize, const char *dir, len = dlen + 1 + plen + 5 + 3; while (1) { - const size_t i; + size_t i; if (*idx >= ((sizeof (letters) - 1) * (sizeof (letters) - 1) * (sizeof (letters) - 1))) @@ -193,11 +193,18 @@ __stdio_gen_tempname (char *buf, size_t bufsize, const char *dir, Create a stream for it. */ #ifdef USE_IN_LIBIO int save; + struct locked_FILE + { + struct _IO_FILE_plus fp; +#ifdef _IO_MTSAFE_IO + _IO_lock_t lock; +#endif + } *new_f; struct _IO_FILE_plus *fp; - fp = (struct _IO_FILE_plus *) - malloc (sizeof (struct _IO_FILE_plus)); - if (fp == NULL) + new_f = (struct locked_FILE *) + malloc (sizeof (struct locked_FILE)); + if (new_f == NULL) { /* We lost trying to create a stream (out of memory?). Nothing to do but remove the file, close the descriptor, @@ -209,6 +216,10 @@ __stdio_gen_tempname (char *buf, size_t bufsize, const char *dir, __set_errno (save); return NULL; } + fp = &new_f->fp; +#ifdef _IO_MTSAFE_IO + fp->file._lock = &new_f->lock; +#endif _IO_init (&fp->file, 0); _IO_JUMPS (&fp->file) = &_IO_file_jumps; _IO_file_init (&fp->file); |