From mboxrd@z Thu Jan 1 00:00:00 1970 From: Travis B. Sawyer Date: Fri, 10 Jun 2005 09:03:39 -0400 Subject: [U-Boot-Users] PATCH fix 440gx_enet.c driver was: WARNING: in 440gx_enet.c In-Reply-To: <5F98E47AD7B1C349895ED4E2EDF3918B01164F3E@stca209a> References: <5F98E47AD7B1C349895ED4E2EDF3918B01164F3E@stca209a> Message-ID: <42A98FAB.7010305@sandburst.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Roberts, John wrote: > U-Boot 1.1.2 > In function: int ppc_440x_eth_initialize (bd_t * bis) > > This function malloc's a data structures > > /* Allocate our private use data */ > hw = (EMAC_440GX_HW_PST) malloc (sizeof (EMAC_440GX_HW_ST)); > > Later in function: static int ppc_440x_eth_init (struct eth_device *dev, > bd_t * bis) > > /* Free "old" buffers */ > if (hw_p->alloc_tx_buf) > free (hw_p->alloc_tx_buf); > if (hw_p->alloc_rx_buf) > free (hw_p->alloc_rx_buf); > > > The first time through, the code assumes hw_p->alloc_tx_buf and > hw_p->alloc_rx_buf will be zero. A malloc doesn't guarantee that and the > variables are never initialized to zero. If the malloc'd memory is all "F"s > you end up with : free(0xFFFFFFFF); Or it may be any random non-zero value > you try to free. > > I added a memset after the malloc to init the struct to zero. I suppose > replacing the malloc with calloc will do the trick as well. (file) 405gp_enet.c 1.11 11 months stroese Fix bug in 405 ethernet driver; allocated data not cleared! Hmmm... Looks like I let that slip by when Stefan updated the 405 ethernet driver and I didn't update the 440 version. CHANGELOG: * Patch by Travis Sawyer, 10 June 2005: Initialize allocated dev and private hw structures after their respective allocation in 440gx_enet.c Patch is attached... Thanx Travis -------------- next part -------------- A non-text attachment was scrubbed... Name: 440gx_enet_malloc.patch Type: text/x-patch Size: 685 bytes Desc: not available Url : http://lists.denx.de/pipermail/u-boot/attachments/20050610/c6f63e86/attachment.bin