On Monday, August 29, 2011 01:39:18 Ajay Bhargav wrote: > ----- "Mike Frysinger" <vap...@gentoo.org> wrote: > > On Monday, August 29, 2011 01:10:49 Ajay Bhargav wrote: > > > ----- "Mike Frysinger" <vap...@gentoo.org> wrote: > > > > On Friday, August 26, 2011 02:36:51 Ajay Bhargav wrote: > > > > > + darmdfec = malloc(sizeof(struct armdfec_device)); > > > > > + if (!darmdfec) > > > > > + goto error; > > > > > > > > if this first one fails, we jump to: > > > > > +error: > > > > > + free(darmdfec->p_aligned_txbuf); > > > > > + free(darmdfec->p_rxbuf); > > > > > + free(darmdfec->p_rxdesc); > > > > > + free(darmdfec->htpr); > > > > > > > > looks like 4 NULL pointer derefs. so you'll need one specific > > > > path > > > > > > for the first malloc(), but the rest are fine. > > > > > > so you mean like this... > > > > > > if(!darmdfec) > > > > > > goto error; > > > > > > ... > > > > > > error1: > > > free(darmdfec->p_aligned_txbuf); > > > free(darmdfec->p_rxbuf); > > > free(darmdfec->p_rxdesc); > > > free(darmdfec->htpr); > > > > > > error: > > > free(darmdfec); > > > return -1; > > > > that's one way of fixing it > > Any other better way?
since all your buffers are known fixed (at compile time) sizes, you could simply inline them into the structure so you only malloc() one buffer -mike
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot