summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fs/jffs2/jffs2_1pass.c17
-rw-r--r--lib_ppc/bootm.c2
2 files changed, 16 insertions, 3 deletions
diff --git a/fs/jffs2/jffs2_1pass.c b/fs/jffs2/jffs2_1pass.c
index 8c9e2eb426b..b61a6f96265 100644
--- a/fs/jffs2/jffs2_1pass.c
+++ b/fs/jffs2/jffs2_1pass.c
@@ -1457,6 +1457,8 @@ jffs2_1pass_build_lists(struct part_info * part)
if (!sumptr) {
putstr("Can't get memory for summary "
"node!\n");
+ free(buf);
+ jffs2_free_cache(part);
return 0;
}
memcpy(sumptr + sumlen - buf_len, buf +
@@ -1478,8 +1480,11 @@ jffs2_1pass_build_lists(struct part_info * part)
if (buf_size && sumlen > buf_size)
free(sumptr);
- if (ret < 0)
+ if (ret < 0) {
+ free(buf);
+ jffs2_free_cache(part);
return 0;
+ }
if (ret)
continue;
@@ -1592,8 +1597,11 @@ jffs2_1pass_build_lists(struct part_info * part)
break;
if (insert_node(&pL->frag, (u32) part->offset +
- ofs) == NULL)
+ ofs) == NULL) {
+ free(buf);
+ jffs2_free_cache(part);
return 0;
+ }
if (max_totlen < node->totlen)
max_totlen = node->totlen;
break;
@@ -1619,8 +1627,11 @@ jffs2_1pass_build_lists(struct part_info * part)
if (! (counterN%100))
puts ("\b\b. ");
if (insert_node(&pL->dir, (u32) part->offset +
- ofs) == NULL)
+ ofs) == NULL) {
+ free(buf);
+ jffs2_free_cache(part);
return 0;
+ }
if (max_totlen < node->totlen)
max_totlen = node->totlen;
counterN++;
diff --git a/lib_ppc/bootm.c b/lib_ppc/bootm.c
index 0d702bf2517..83857490f35 100644
--- a/lib_ppc/bootm.c
+++ b/lib_ppc/bootm.c
@@ -94,6 +94,7 @@ static void boot_jump_linux(bootm_headers_t *images)
#endif
debug (" Booting using OF flat tree...\n");
+ WATCHDOG_RESET ();
(*kernel) ((bd_t *)of_flat_tree, 0, 0, EPAPR_MAGIC,
CONFIG_SYS_BOOTMAPSZ, 0, 0);
/* does not return */
@@ -117,6 +118,7 @@ static void boot_jump_linux(bootm_headers_t *images)
bd_t *kbd = images->kbd;
debug (" Booting using board info...\n");
+ WATCHDOG_RESET ();
(*kernel) (kbd, initrd_start, initrd_end,
cmd_start, cmd_end, 0, 0);
/* does not return */