diff options
author | John Ogness | 2009-12-11 09:47:28 +0100 |
---|---|---|
committer | Ben Warren | 2009-12-13 21:55:15 -0800 |
commit | c179a2896e6a5138e30786f1d7961d880dbd6d31 (patch) | |
tree | fbd645f1397628a3b03d6d06937ad3c7fcda5f04 | |
parent | 2ab4a4d0952b754b1c74f4d2b12b83d600d449c8 (diff) |
fec_mxc: incomplete error handling
fec_init() will only allocate fec->base_ptr if it is non-NULL. But
the cleanup routine on error will free the pointer without setting
it to NULL. This means that a later call to fec_init() would result
in using an invalid pointer.
Signed-off-by: John Ogness <john.ogness@linutronix.de>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
-rw-r--r-- | drivers/net/fec_mxc.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c index ad073077cf1..19116f253ab 100644 --- a/drivers/net/fec_mxc.c +++ b/drivers/net/fec_mxc.c @@ -450,6 +450,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); |