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