Date: Sun, 24 Jan 2010 20:15:59 +0000 (UTC) From: David Schultz <das@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org Subject: svn commit: r202947 - stable/8/lib/libc/stdio Message-ID: <201001242015.o0OKFx3U032000@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: das Date: Sun Jan 24 20:15:59 2010 New Revision: 202947 URL: http://svn.freebsd.org/changeset/base/202947 Log: MFC r197752: Better glibc compatibility for getline/getdelim: - Tolerate applications that pass a NULL pointer for the buffer and claim that the capacity of the buffer is nonzero. - If an application passes in a non-NULL buffer pointer and claims the buffer has zero capacity, we should free (well, realloc) it anyway. It could have been obtained from malloc(0), so failing to free it would be a small memory leak. Modified: stable/8/lib/libc/stdio/getdelim.c Modified: stable/8/lib/libc/stdio/getdelim.c ============================================================================== --- stable/8/lib/libc/stdio/getdelim.c Sun Jan 24 19:36:43 2010 (r202946) +++ stable/8/lib/libc/stdio/getdelim.c Sun Jan 24 20:15:59 2010 (r202947) @@ -120,8 +120,8 @@ getdelim(char ** __restrict linep, size_ goto error; } - if (*linecapp == 0) - *linep = NULL; + if (*linep == NULL) + *linecapp = 0; if (fp->_r <= 0 && __srefill(fp)) { /* If fp is at EOF already, we just need space for the NUL. */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201001242015.o0OKFx3U032000>