Date: Fri, 06 Jul 2018 21:42:19 -0700 From: Cy Schubert <Cy.Schubert@cschubert.com> To: Konstantin Belousov <kostikbel@gmail.com> Cc: Sean Bruno <sbruno@FreeBSD.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r336031 - head/usr.bin/top Message-ID: <201807070442.w674gJVr025505@slippy.cwsent.com> In-Reply-To: Message from Konstantin Belousov <kostikbel@gmail.com> of "Fri, 06 Jul 2018 16:56:34 %2B0300." <20180706135634.GP5562@kib.kiev.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
In message <20180706135634.GP5562@kib.kiev.ua>, Konstantin Belousov writes: > On Fri, Jul 06, 2018 at 01:22:44PM +0000, Sean Bruno wrote: > > Author: sbruno > > Date: Fri Jul 6 13:22:44 2018 > > New Revision: 336031 > > URL: https://svnweb.freebsd.org/changeset/base/336031 > > > > Log: > > r336028 changed next_msg to a char * from char [] of fixed size. Change > > 2nd argument of vsnprintf() to get the strlen of next_msg so that the > > appropriate size is used. > > > > Found with gcc. > > > > /usr.bin/top/display.c: In function 'new_message': > > /usr.bin/top/display.c:963:31: error: > > argument to 'sizeof' in 'vsnprintf' call is the same expression as the > > destination; did you mean to provide an explicit length? > > [-Werror=sizeof-pointer-memaccess] > > vsnprintf(next_msg, sizeof(next_msg), msgfmt, args); > > > > Reviewed by: daichi > > > > Modified: > > head/usr.bin/top/display.c > > > > Modified: head/usr.bin/top/display.c > > =========================================================================== > === > > --- head/usr.bin/top/display.c Fri Jul 6 12:44:48 2018 (r33603 > 0) > > +++ head/usr.bin/top/display.c Fri Jul 6 13:22:44 2018 (r33603 > 1) > > @@ -960,7 +960,7 @@ new_message(int type, const char *msgfmt, ...) > > va_start(args, msgfmt); > > > > /* first, format the message */ > > - vsnprintf(next_msg, sizeof(next_msg), msgfmt, args); > > + vsnprintf(next_msg, strlen(next_msg), msgfmt, args); > I highly suspect that this strlen() call returns zero, always. Yes. OTOH sizeof(next_msg) won't return much useful either, as it returns the size of the pointer. > > > > > va_end(args); > > > -- Cheers, Cy Schubert <Cy.Schubert@cschubert.com> FreeBSD UNIX: <cy@FreeBSD.org> Web: http://www.FreeBSD.org The need of the many outweighs the greed of the few.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201807070442.w674gJVr025505>