From 3ba370974fc308d8ed829cffed080bd3effa54f5 Mon Sep 17 00:00:00 2001 From: TianlongLiang Date: Fri, 23 Jan 2026 14:33:39 +0800 Subject: [PATCH] Correct some error handling path in libc_emcc --- core/iwasm/libraries/libc-emcc/libc_emcc_wrapper.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/core/iwasm/libraries/libc-emcc/libc_emcc_wrapper.c b/core/iwasm/libraries/libc-emcc/libc_emcc_wrapper.c index 3bb6bc6b76..89ffeaaa4f 100644 --- a/core/iwasm/libraries/libc-emcc/libc_emcc_wrapper.c +++ b/core/iwasm/libraries/libc-emcc/libc_emcc_wrapper.c @@ -245,14 +245,21 @@ mmap_wrapper(wasm_exec_env_t exec_env, void *addr, int length, int prot, if (buf_offset == 0) return -1; - if (fd <= 0) + if (fd <= 0) { + module_free((uint64)buf_offset); return -1; + } - if (lseek(fd, offset, SEEK_SET) == -1) + if (lseek(fd, offset, SEEK_SET) == -1) { + module_free((uint64)buf_offset); return -1; + } size_read = read(fd, buf, length); - (void)size_read; + if (size_read < 0) { + module_free((uint64)buf_offset); + return -1; + } return buf_offset; }