From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9375 invoked by alias); 29 Apr 2003 13:32:25 -0000 Mailing-List: contact ecos-maintainers-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Post: List-Help: , Sender: ecos-maintainers-owner@sources.redhat.com Received: (qmail 9365 invoked from network); 29 Apr 2003 13:32:22 -0000 Subject: Re: Aprove: M_ZERO cyg_net_malloc flag From: Gary Thomas To: Andrew Lunn Cc: eCos Maintainers In-Reply-To: <20030429075123.GY21714@biferten.ma.tech.ascom.ch> References: <20030429075123.GY21714@biferten.ma.tech.ascom.ch> Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Ximian Evolution 1.0.3 (1.0.3-4) Date: Tue, 29 Apr 2003 13:32:00 -0000 Message-Id: <1051623142.29367.4401.camel@hermes.chez-thomas.org> Mime-Version: 1.0 X-SW-Source: 2003-04/txt/msg00062.txt.bz2 On Tue, 2003-04-29 at 01:51, Andrew Lunn wrote: > Aprovel request for the 2.0 branch: > > Name: M_ZERO flag for cyg_net_malloc() > > Purpose: The bsd_tcpip MALLOC macro can pass the flag > M_ZERO. cyg_net_malloc ignores this so leaving random junk in the > memory returned. This can then cause calls like getpeername and > getsockname to return sockaddr with junk in there tails. When such a > sockaddr is then passed back into the stack with a bind call, the bind > fails because of the junk. > > Risk: Small. > > Affected packages: bsd_tcpip and anything depending on it. > Looks fine to me. Please go ahead and apply this change. > Andrew > > Index: packages/net/bsd_tcpip//current/ChangeLog > =================================================================== > RCS file: /cvs/ecos/ecos-opt/net/net/bsd_tcpip/current/ChangeLog,v > retrieving revision 1.17.2.1 > diff -u -r1.17.2.1 ChangeLog > --- packages/net/bsd_tcpip//current/ChangeLog 14 Mar 2003 13:44:37 -0000 1.17.2.1 > +++ packages/net/bsd_tcpip//current/ChangeLog 29 Apr 2003 07:46:10 -0000 > @@ -1,3 +1,8 @@ > +2003-04-29 Andrew Lunn > + > + * src/ecos/support.c (cyg_net_malloc): Honour the M_ZERO > + flag. Otherwise we get random junk in places we don't want it. > + > 2003-03-14 Andrew Lunn > > * src/sys/net/if.c (if_attach): Removed printf which causes the > Index: packages/net/bsd_tcpip//current/src/ecos/support.c > =================================================================== > RCS file: /cvs/ecos/ecos-opt/net/net/bsd_tcpip/current/src/ecos/support.c,v > retrieving revision 1.4 > diff -u -r1.4 support.c > --- packages/net/bsd_tcpip//current/src/ecos/support.c 3 Dec 2002 17:22:46 -0000 1.4 > +++ packages/net/bsd_tcpip//current/src/ecos/support.c 29 Apr 2003 07:46:11 -0000 > @@ -201,6 +201,9 @@ > } else { > res = cyg_mempool_var_alloc(net_mem, size); > } > + if ((flags & M_ZERO) && res) { > + memset(res,0,size); > + } > FINISH_STATS(stats_malloc); > log(LOG_MDEBUG, "%p\n", res); > return (res); -- ------------------------------------------------------------ Gary Thomas | MLB Associates | Consulting for the +1 (970) 229-1963 | Embedded world http://www.mlbassoc.com/ | email: | gpg: http://www.chez-thomas.org/gary/gpg_key.asc ------------------------------------------------------------