diff options
author | John Ogness <john.ogness@linutronix.de> | 2009-12-11 08:47:28 (GMT) |
---|---|---|
committer | Ben Warren <biggerbadderben@gmail.com> | 2009-12-14 05:55:15 (GMT) |
commit | c179a2896e6a5138e30786f1d7961d880dbd6d31 (patch) | |
tree | fbd645f1397628a3b03d6d06937ad3c7fcda5f04 | |
parent | 2ab4a4d0952b754b1c74f4d2b12b83d600d449c8 (diff) | |
download | u-boot-c179a2896e6a5138e30786f1d7961d880dbd6d31.tar.xz |
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 ad07307..19116f2 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); |