diff options
Diffstat (limited to 'lib/libc/stdio/fvwrite.c')
-rw-r--r-- | lib/libc/stdio/fvwrite.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/libc/stdio/fvwrite.c b/lib/libc/stdio/fvwrite.c index bc73dbb8743..07c4bc7a06d 100644 --- a/lib/libc/stdio/fvwrite.c +++ b/lib/libc/stdio/fvwrite.c @@ -35,7 +35,7 @@ */ #if defined(LIBC_SCCS) && !defined(lint) -static char rcsid[] = "$OpenBSD: fvwrite.c,v 1.6 1997/11/30 01:13:24 millert Exp $"; +static char rcsid[] = "$OpenBSD: fvwrite.c,v 1.7 1998/08/14 21:39:40 deraadt Exp $"; #endif /* LIBC_SCCS and not lint */ #include <stdio.h> @@ -113,6 +113,7 @@ __sfvwrite(fp, uio) if ((fp->_flags & (__SALC | __SSTR)) == (__SALC | __SSTR) && fp->_w < len) { size_t blen = fp->_p - fp->_bf._base; + unsigned char *_base; /* * Alloc an extra 128 bytes (+ 1 for NULL) @@ -120,10 +121,10 @@ __sfvwrite(fp, uio) */ fp->_w = len + 128; fp->_bf._size = blen + len + 128; - fp->_bf._base = - realloc(fp->_bf._base, fp->_bf._size + 1); - if (fp->_bf._base == NULL) + _base = realloc(fp->_bf._base, fp->_bf._size + 1); + if (_base == NULL) goto err; + fp->_bf._base = _base; fp->_p = fp->_bf._base + blen; } w = fp->_w; |