Skip to content

Commit 9237915

Browse files
committed
Free allocated memory
1 parent c8a2956 commit 9237915

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

core/iwasm/common/wasm_runtime_common.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3812,7 +3812,7 @@ wasm_runtime_init_wasi(WASMModuleInstanceCommon *module_inst,
38123812

38133813
/* addr_pool(textual) -> apool */
38143814
for (i = 0; i < addr_pool_size; i++) {
3815-
char *cp, *address, *mask, *endptr;
3815+
char *cp, *address, *mask, *saveptr, *endptr;
38163816
long mask_val;
38173817
bool ret = false;
38183818

@@ -3823,14 +3823,15 @@ wasm_runtime_init_wasi(WASMModuleInstanceCommon *module_inst,
38233823
goto fail;
38243824
}
38253825

3826-
address = strtok(cp, "/");
3827-
mask = strtok(NULL, "/");
3826+
address = strtok(cp, "/", &saveptr);
3827+
mask = strtok(NULL, "/", &saveptr);
38283828

38293829
if (!mask) {
38303830
snprintf(error_buf, error_buf_size,
38313831
"Invalid address pool entry: %s, must be in the format of "
38323832
"ADDRESS/MASK",
38333833
addr_pool[i]);
3834+
wasm_runtime_free(cp);
38343835
goto fail;
38353836
}
38363837

@@ -3840,11 +3841,13 @@ wasm_runtime_init_wasi(WASMModuleInstanceCommon *module_inst,
38403841
if (mask == endptr || *endptr != '\0') {
38413842
snprintf(error_buf, error_buf_size,
38423843
"Invalid address pool entry: mask must be a number");
3844+
wasm_runtime_free(cp);
38433845
goto fail;
38443846
}
38453847
if (errno != 0 || mask_val < 0) {
38463848
snprintf(error_buf, error_buf_size,
38473849
"Init wasi environment failed: invalid mask number");
3850+
wasm_runtime_free(cp);
38483851
goto fail;
38493852
}
38503853

0 commit comments

Comments
 (0)