
29 Aug
2011
29 Aug
'11
7:30 a.m.
On Monday, August 29, 2011 01:10:49 Ajay Bhargav wrote:
----- "Mike Frysinger" vapier@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 -mike