From patchwork Mon Jun 18 16:18:45 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [02/22] UBI: Fastmap: Fix NULL pointer bug Date: Mon, 18 Jun 2012 06:18:45 -0000 From: Richard Weinberger X-Patchwork-Id: 165501 Message-Id: <1340036345-96726-3-git-send-email-richard@nod.at> To: linux-mtd@lists.infradead.org Cc: artem.bityutskiy@linux.intel.com, linux-kernel@vger.kernel.org, adrian.hunter@intel.com, Heinz.Egger@linutronix.de, thomas.wucher@linutronix.de, shmulik.ladkani@gmail.com, Richard Weinberger , tglx@linutronix.de, Marius.Mazarel@ugal.ro, tim.bird@am.sony.com Signed-off-by: Richard Weinberger --- drivers/mtd/ubi/fastmap.c | 13 ++++++++----- 1 files changed, 8 insertions(+), 5 deletions(-) diff --git a/drivers/mtd/ubi/fastmap.c b/drivers/mtd/ubi/fastmap.c index 8b033e5..5bbf1e3 100644 --- a/drivers/mtd/ubi/fastmap.c +++ b/drivers/mtd/ubi/fastmap.c @@ -1290,11 +1290,14 @@ int ubi_update_fastmap(struct ubi_device *ubi) goto err; } - tmp_e->pnum = old_fm->e[0]->pnum; - tmp_e->ec = old_fm->e[0]->ec; + new_fm->e[0]->pnum = old_fm->e[0]->pnum; + new_fm->e[0]->ec = old_fm->e[0]->ec; } else { /* we've got a new early PEB, return the old one */ ubi_wl_put_fm_peb(ubi, old_fm->e[0], 0); + + new_fm->e[0]->pnum = tmp_e->pnum; + new_fm->e[0]->ec = tmp_e->ec; } /* return all other fastmap block to the wl system */ @@ -1307,10 +1310,10 @@ int ubi_update_fastmap(struct ubi_device *ubi) goto err; } - } - new_fm->e[0]->pnum = tmp_e->pnum; - new_fm->e[0]->ec = tmp_e->ec; + new_fm->e[0]->pnum = tmp_e->pnum; + new_fm->e[0]->ec = tmp_e->ec; + } if (new_fm->used_blocks > UBI_FM_MAX_BLOCKS) { ubi_err("fastmap too large");