Date: Fri, 6 Jul 2018 09:01:06 -0600 From: Sean Bruno <sbruno@freebsd.org> To: Ian Lepore <ian@freebsd.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, Daichi GOTO <daichi@FreeBSD.org> Subject: Re: svn commit: r336031 - head/usr.bin/top Message-ID: <20e05842-cbfb-671c-5532-c57514346bf5@freebsd.org> In-Reply-To: <1530888553.57805.8.camel@freebsd.org> References: <201807061322.w66DMjRG084523@repo.freebsd.org> <1530888553.57805.8.camel@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --l04QF4mS7mUZ5NP2REeAABoNUtpw6rCgr Content-Type: multipart/mixed; boundary="S2Dfyt8HaULkhmptpzK0Gnpwp2g8dL1np"; protected-headers="v1" From: Sean Bruno <sbruno@freebsd.org> To: Ian Lepore <ian@freebsd.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, Daichi GOTO <daichi@FreeBSD.org> Message-ID: <20e05842-cbfb-671c-5532-c57514346bf5@freebsd.org> Subject: Re: svn commit: r336031 - head/usr.bin/top References: <201807061322.w66DMjRG084523@repo.freebsd.org> <1530888553.57805.8.camel@freebsd.org> In-Reply-To: <1530888553.57805.8.camel@freebsd.org> --S2Dfyt8HaULkhmptpzK0Gnpwp2g8dL1np Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 07/06/18 08:49, Ian Lepore wrote: > On Fri, 2018-07-06 at 13:22 +0000, Sean Bruno wrote: >> Author: sbruno >> Date: Fri Jul=C2=A0=C2=A06 13:22:44 2018 >> New Revision: 336031 >> URL: https://svnweb.freebsd.org/changeset/base/336031 >> >> Log: >> =C2=A0 r336028 changed next_msg to a char * from char [] of fixed size= =2E=C2=A0=C2=A0Change >> =C2=A0 2nd argument of vsnprintf() to get the strlen of next_msg so th= at the >> =C2=A0 appropriate size is used. >> =C2=A0=C2=A0 >> =C2=A0 Found with gcc. >> =C2=A0=C2=A0 >> =C2=A0 /usr.bin/top/display.c: In function 'new_message': >> =C2=A0 /usr.bin/top/display.c:963:31: error: >> =C2=A0 argument to 'sizeof' in 'vsnprintf' call is the same expression= as the >> =C2=A0 destination; did you mean to provide an explicit length? >> =C2=A0 [-Werror=3Dsizeof-pointer-memaccess] >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0vsnprintf(next_msg, sizeof(n= ext_msg), msgfmt, args); >> =C2=A0=C2=A0 >> =C2=A0 Reviewed by: daichi >> >> Modified: >> =C2=A0 head/usr.bin/top/display.c >> >> Modified: head/usr.bin/top/display.c >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/usr.bin/top/display.c Fri Jul=C2=A0=C2=A06 12:44:48 2018 (r33= 6030) >> +++ head/usr.bin/top/display.c Fri Jul=C2=A0=C2=A06 13:22:44 2018 (r33= 6031) >> @@ -960,7 +960,7 @@ new_message(int type, const char *msgfmt, ...) >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0va_start(args, msgfmt); >> =C2=A0 >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0/* first, format the message */ >> -=C2=A0=C2=A0=C2=A0=C2=A0vsnprintf(next_msg, sizeof(next_msg), msgfmt,= args); >> +=C2=A0=C2=A0=C2=A0=C2=A0vsnprintf(next_msg, strlen(next_msg), msgfmt,= args); >> =C2=A0 >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0va_end(args); >> =C2=A0 >> >=20 > This fix is incorrect. The original commit that changed next_msg to a > pointer is probably flawed enough to revert and redevelop rather than > try a rolling set of bandaid fixes. >=20 > Whenever setup_buffer() creates a new buffer it will need to store the > size it allocated for use in this vsnprintf() call (and maybe other > places that write directly into next_msg without calling setup_buffer > to reallocate it first, I didn't look). The setup_buffer_bufsiz > variable isn't quite right as-is, because it doesn't include the > 'addlen' value passed to setup_buffer(). >=20 > -- Ian >=20 >=20 Yeah, this isn't going well. I've been poking around in it and I can't see an quick way to do this correctly. sean --S2Dfyt8HaULkhmptpzK0Gnpwp2g8dL1np-- --l04QF4mS7mUZ5NP2REeAABoNUtpw6rCgr Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQGTBAEBCgB9FiEE6MTp+IA1BOHj9Lo0veT1/om1/LYFAls/hDJfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEU4 QzRFOUY4ODAzNTA0RTFFM0Y0QkEzNEJERTRGNUZFODlCNUZDQjYACgkQveT1/om1 /LZFhQgAtAzQ1F/dvMyKwUd6jJ+3Rmbq/yhgQ4P8nO593aD9Mz6taZ9GR2eCviAK Cw1FpvJy/DCdNDiOYylJbl8sneZPr0ykMUiKEk9O1KS/nyVCnBCenpd/PMbxi2MQ GIVZ0GXSH2PRyB7gmfn369g04SEhR+fGElshY0A0WTr84ah8B6fXl7KpWASYMgKz YMAFcMBGi1vkfKJv5KcftkcXO7zID2uNmukCDMh4tS7+PWJnBwR8V3Db7DUZV0Sc 1mxNS+dDVKXBbJAzB/cqupAKmIdRMu493IuA/CYxzGFOOWl8+fuG7QoULY0u8aW0 Cu1xjSfUR6Q6k+km02oaCrtvTXxx7A== =hm+D -----END PGP SIGNATURE----- --l04QF4mS7mUZ5NP2REeAABoNUtpw6rCgr--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20e05842-cbfb-671c-5532-c57514346bf5>