diff options
Diffstat (limited to 'newlib/libc/stdio/gets.c')
-rw-r--r-- | newlib/libc/stdio/gets.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/newlib/libc/stdio/gets.c b/newlib/libc/stdio/gets.c index 17d1443..daa42e9 100644 --- a/newlib/libc/stdio/gets.c +++ b/newlib/libc/stdio/gets.c @@ -79,12 +79,14 @@ _DEFUN(_gets_r, (ptr, buf), register int c; register char *s = buf; + __sfp_lock_acquire (); _flockfile (stdin); while ((c = __sgetc_r (ptr, stdin)) != '\n') if (c == EOF) if (s == buf) { _funlockfile (stdin); + __sfp_lock_release (); return NULL; } else @@ -93,6 +95,7 @@ _DEFUN(_gets_r, (ptr, buf), *s++ = c; *s = 0; _funlockfile (stdin); + __sfp_lock_release (); return buf; } |