[U-Boot] [u-boot] [PATCH] [2/2] mxc_fec: put freed pointers to NULL to avoid problems with further free() calls.

If a free() call is used on an already freed pointer we run into stability problems. Put all pointers to NULL after freeing to avoid this problem.
Tested on i.MX27 Litekit board with eldk-2.0 toolchain.
Signed-off-by: Javier Martin javier.martin@vista-silicon.com --
diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c index bd83a24..7e86bc6 100644 --- a/drivers/net/fec_mxc.c +++ b/drivers/net/fec_mxc.c @@ -444,6 +444,7 @@ static int fec_init(struct eth_device *dev, bd_t* bd) */ if (fec_rbd_init(fec, FEC_RBD_NUM, FEC_MAX_PKT_SIZE) < 0) { free(fec->base_ptr); + fec->base_ptr = NULL; return -ENOMEM; } fec_tbd_init(fec); @@ -492,7 +493,9 @@ static void fec_halt(struct eth_device *dev) fec->rbd_index = 0; fec->tbd_index = 0; free(fec->rdb_ptr); + fec->rdb_ptr = NULL; free(fec->base_ptr); + fec->base_ptr = NULL; debug("eth_halt: done\n"); }

Dear javier Martin,
In message eedb5540910190519l4551493eoc595ca39f0335cb2@mail.gmail.com you wrote:
If a free() call is used on an already freed pointer we run into stability problems.
Is this actually the case anywhere in the code? If so, that code should be fixed, as thisis obviously a bug then.
I dislike workarounds like these as they just hush up design and/or implementation issues int he code. lease rather fix the real problems instead.
Thanks.
Tested on i.MX27 Litekit board with eldk-2.0 toolchain.
ELDK 2.0? Wow. I did not think this was still in use anywhere around.
Best regards,
Wolfgang Denk

2009/10/19 Wolfgang Denk wd@denx.de:
Dear javier Martin,
In message eedb5540910190519l4551493eoc595ca39f0335cb2@mail.gmail.com you wrote:
If a free() call is used on an already freed pointer we run into stability problems.
Is this actually the case anywhere in the code? If so, that code should be fixed, as thisis obviously a bug then.
I dislike workarounds like these as they just hush up design and/or implementation issues int he code. lease rather fix the real problems instead.
Thanks.
You are right.
Tested on i.MX27 Litekit board with eldk-2.0 toolchain.
ELDK 2.0? Wow. I did not think this was still in use anywhere around.
This is obviously a typo, I used eldk-4.2.
Best regards,
Wolfgang Denk
-- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de "Most people would like to be delivered from temptation but would like it to keep in touch." - Robert Orben
Thank you for your comments, I will resent this patch fixing the real problem.
participants (2)
-
javier Martin
-
Wolfgang Denk