|
@@ -1457,6 +1457,8 @@ jffs2_1pass_build_lists(struct part_info * part)
|
|
if (!sumptr) {
|
|
if (!sumptr) {
|
|
putstr("Can't get memory for summary "
|
|
putstr("Can't get memory for summary "
|
|
"node!\n");
|
|
"node!\n");
|
|
|
|
+ free(buf);
|
|
|
|
+ jffs2_free_cache(part);
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
memcpy(sumptr + sumlen - buf_len, buf +
|
|
memcpy(sumptr + sumlen - buf_len, buf +
|
|
@@ -1478,8 +1480,11 @@ jffs2_1pass_build_lists(struct part_info * part)
|
|
|
|
|
|
if (buf_size && sumlen > buf_size)
|
|
if (buf_size && sumlen > buf_size)
|
|
free(sumptr);
|
|
free(sumptr);
|
|
- if (ret < 0)
|
|
|
|
|
|
+ if (ret < 0) {
|
|
|
|
+ free(buf);
|
|
|
|
+ jffs2_free_cache(part);
|
|
return 0;
|
|
return 0;
|
|
|
|
+ }
|
|
if (ret)
|
|
if (ret)
|
|
continue;
|
|
continue;
|
|
|
|
|
|
@@ -1592,8 +1597,11 @@ jffs2_1pass_build_lists(struct part_info * part)
|
|
break;
|
|
break;
|
|
|
|
|
|
if (insert_node(&pL->frag, (u32) part->offset +
|
|
if (insert_node(&pL->frag, (u32) part->offset +
|
|
- ofs) == NULL)
|
|
|
|
|
|
+ ofs) == NULL) {
|
|
|
|
+ free(buf);
|
|
|
|
+ jffs2_free_cache(part);
|
|
return 0;
|
|
return 0;
|
|
|
|
+ }
|
|
if (max_totlen < node->totlen)
|
|
if (max_totlen < node->totlen)
|
|
max_totlen = node->totlen;
|
|
max_totlen = node->totlen;
|
|
break;
|
|
break;
|
|
@@ -1619,8 +1627,11 @@ jffs2_1pass_build_lists(struct part_info * part)
|
|
if (! (counterN%100))
|
|
if (! (counterN%100))
|
|
puts ("\b\b. ");
|
|
puts ("\b\b. ");
|
|
if (insert_node(&pL->dir, (u32) part->offset +
|
|
if (insert_node(&pL->dir, (u32) part->offset +
|
|
- ofs) == NULL)
|
|
|
|
|
|
+ ofs) == NULL) {
|
|
|
|
+ free(buf);
|
|
|
|
+ jffs2_free_cache(part);
|
|
return 0;
|
|
return 0;
|
|
|
|
+ }
|
|
if (max_totlen < node->totlen)
|
|
if (max_totlen < node->totlen)
|
|
max_totlen = node->totlen;
|
|
max_totlen = node->totlen;
|
|
counterN++;
|
|
counterN++;
|