Skip site navigation (1)Skip section navigation (2)
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>