* libc/stdio/gets.c (_gets_r): Lock stdin here and call

__sgetc_r instead of _getchar_r.
This commit is contained in:
Corinna Vinschen 2008-11-25 09:33:43 +00:00
parent de33833d1f
commit a11451b353
2 changed files with 12 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2008-11-25 Corinna Vinschen <corinna@vinschen.de>
* libc/stdio/gets.c (_gets_r): Lock stdin here and call
__sgetc_r instead of _getchar_r.
2008-11-24 Craig Howland <howland@LGSInnovations.com>
* libc/stdlib/wcstoull_r.c: Add EINVAL return for bad base value,

View File

@ -79,15 +79,20 @@ _DEFUN(_gets_r, (ptr, buf),
register int c;
register char *s = buf;
while ((c = _getchar_r (ptr)) != '\n')
_flockfile (stdin);
while ((c = __sgetc_r (ptr, stdin)) != '\n')
if (c == EOF)
if (s == buf)
return NULL;
{
_funlockfile (stdin);
return NULL;
}
else
break;
else
*s++ = c;
*s = 0;
_funlockfile (stdin);
return buf;
}