Procházet zdrojové kódy

Fix null pointer access in fast-interp when configurable soft bound check is enabled (#3150)

The wasm_interp_call_func_bytecode is called for the first time with the empty
module/exec_env to generate a global_handle_table. Before that happens though,
the function checks if the module instance has bounds check enabled. Because
the module instance is null, the program crashes. This PR added an extra check to
prevent the crashes.
Marcin Kolny před 2 roky
rodič
revize
e792c35822
1 změnil soubory, kde provedl 4 přidání a 0 odebrání
  1. 4 0
      core/iwasm/common/wasm_memory.c

+ 4 - 0
core/iwasm/common/wasm_memory.c

@@ -104,6 +104,10 @@ static inline bool
 is_bounds_checks_enabled(WASMModuleInstanceCommon *module_inst)
 is_bounds_checks_enabled(WASMModuleInstanceCommon *module_inst)
 {
 {
 #if WASM_CONFIGURABLE_BOUNDS_CHECKS != 0
 #if WASM_CONFIGURABLE_BOUNDS_CHECKS != 0
+    if (!module_inst) {
+        return true;
+    }
+
     return wasm_runtime_is_bounds_checks_enabled(module_inst);
     return wasm_runtime_is_bounds_checks_enabled(module_inst);
 #else
 #else
     return true;
     return true;