summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancois Berder <[email protected]>2025-11-11 13:49:30 +0100
committerTom Rini <[email protected]>2025-12-05 16:23:54 -0600
commit1c1be32c31cbec61d32f7aaa498ccc25567ae3e0 (patch)
treee7adc9a5d05fbd307ce99577cdad0cc2834bc986
parent00e1fed93c8c3e4c9037741ea1b70a9e693a6e65 (diff)
fs/erofs: Fix realloc error handling
If realloc failed, raw was not freed and thus memory was leaked. Signed-off-by: Francois Berder <[email protected]>
-rw-r--r--fs/erofs/data.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/fs/erofs/data.c b/fs/erofs/data.c
index 95b609d8ea8..b58ec6fcc66 100644
--- a/fs/erofs/data.c
+++ b/fs/erofs/data.c
@@ -319,12 +319,15 @@ static int z_erofs_read_data(struct erofs_inode *inode, char *buffer,
}
if (map.m_plen > bufsize) {
+ char *tmp;
+
bufsize = map.m_plen;
- raw = realloc(raw, bufsize);
- if (!raw) {
+ tmp = realloc(raw, bufsize);
+ if (!tmp) {
ret = -ENOMEM;
break;
}
+ raw = tmp;
}
ret = z_erofs_read_one_data(inode, &map, raw,