1
1

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:
Anna Kiri 2026-05-26 19:25:14 +02:00 committed by Jonas Jelonek
parent e13430ef1d
commit df26b8723a
No known key found for this signature in database

View File

@ -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;