aboutsummaryrefslogtreecommitdiff
path: root/newlib/libc/stdio/gets.c
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/stdio/gets.c')
-rw-r--r--newlib/libc/stdio/gets.c3
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;
}