* libc/stdio/fmemopen.c (fmemopen): Fix EINVAL condition. Avoid SEGV

if incoming buffer is NULL.
This commit is contained in:
Corinna Vinschen 2011-02-22 15:38:14 +00:00
parent 12374d7d2f
commit d9db1bc555
2 changed files with 7 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2011-02-22 Corinna Vinschen <vinschen@redhat.com>
* libc/stdio/fmemopen.c (fmemopen): Fix EINVAL condition. Avoid SEGV
if incoming buffer is NULL.
2011-02-09 Eric Blake <eblake@redhat.com>
* libc/include/string.h (strerror_r): Update declaration.

View File

@ -281,7 +281,7 @@ _DEFUN(_fmemopen_r, (ptr, buf, size, mode),
if ((flags = __sflags (ptr, mode, &dummy)) == 0)
return NULL;
if (!size || !(buf || flags & __SAPP))
if (!size || !(buf || flags & __SRW))
{
ptr->_errno = EINVAL;
return NULL;
@ -310,7 +310,7 @@ _DEFUN(_fmemopen_r, (ptr, buf, size, mode),
{
/* r+/w+/a+, and no buf: file starts empty. */
c->buf = (char *) (c + 1);
*(char *) buf = '\0';
c->buf[0] = '\0';
c->pos = c->eof = 0;
c->append = (flags & __SAPP) != 0;
}