Date: Fri, 22 Mar 2002 12:10:02 -0800 (PST) From: Jiu Zheng <jiu@stbernard.com> To: freebsd-bugs@FreeBSD.org Subject: Re: bin/36175: Vsnprintf causes memeory leak Message-ID: <200203222010.g2MKA2S85971@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/36175; it has been noted by GNATS. From: Jiu Zheng <jiu@stbernard.com> To: Maxim Konovalov <maxim@macomnet.ru> Cc: <freebsd-gnats-submit@FreeBSD.ORG>, <assar@FreeBSD.ORG> Subject: Re: bin/36175: Vsnprintf causes memeory leak Date: Fri, 22 Mar 2002 11:59:16 -0800 (PST) Thank you, Maxim, The way your patch works is exactly how I fixed problems in my applications' source codes - call vsnprintf(&dummy, 1, fmt, ap). The things is that it is impractical to patch and recompile libc for all our development workstations. I just wish this will get fixed soon with freebsd release. Jiu On Fri, 22 Mar 2002, Maxim Konovalov wrote: > > Could you please try a patch below (from OpenBSD): > > Index: vsnprintf.c > =================================================================== > RCS file: /home/ncvs/src/lib/libc/stdio/vsnprintf.c,v > retrieving revision 1.15 > diff -u -r1.15 vsnprintf.c > --- vsnprintf.c 18 Jun 2001 04:40:52 -0000 1.15 > +++ vsnprintf.c 22 Mar 2002 08:32:29 -0000 > @@ -55,6 +55,7 @@ > { > size_t on; > int ret; > + char dummy; > FILE f; > > on = n; > @@ -62,6 +63,11 @@ > n--; > if (n > INT_MAX) > n = INT_MAX; > + /* Stdio internals do not deal correctly with zero length buffer */ > + if (n == 0) { > + str = &dummy; > + n = 1; > + } > f._file = -1; > f._flags = __SWR | __SSTR; > f._bf._base = f._p = (unsigned char *)str; > > %%% > > -- > Maxim Konovalov, MAcomnet, Internet-Intranet Dept., system engineer > phone: +7 (095) 796-9079, mailto:maxim@macomnet.ru > To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200203222010.g2MKA2S85971>