mtd: jffs2: add missing malloc NULL check
In mtd_replace_jffs2(), the return value of malloc(erasesize) is never checked. If the allocation fails, buf remains NULL and the subsequent memcpy(buf + ofs, ...) in add_data() will dereference NULL, causing a segfault. Add a NULL check and return -1 on allocation failure. Match the diagnostic message used by the sibling mtd_write_jffs2() so the out-of-memory cause is visible at the call site. Signed-off-by: Anna Kiri <bredcorn@gmail.com> Link: https://github.com/openwrt/openwrt/pull/23553 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
This commit is contained in:
parent
e13430ef1d
commit
df26b8723a
@ -242,6 +242,10 @@ int mtd_replace_jffs2(const char *mtd, int fd, int ofs, const char *filename)
|
|||||||
mtdofs = ofs;
|
mtdofs = ofs;
|
||||||
|
|
||||||
buf = malloc(erasesize);
|
buf = malloc(erasesize);
|
||||||
|
if (!buf) {
|
||||||
|
fprintf(stderr, "Out of memory!\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
target_ino = 1;
|
target_ino = 1;
|
||||||
if (!last_ino)
|
if (!last_ino)
|
||||||
last_ino = 1;
|
last_ino = 1;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user