Skip to content

Commit a65e478

Browse files
committed
use wasi configuration from InstantiationArgs2 if any
fallback to the via-module configuration for now.
1 parent dd53041 commit a65e478

2 files changed

Lines changed: 36 additions & 20 deletions

File tree

core/iwasm/aot/aot_runtime.c

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2081,17 +2081,25 @@ aot_instantiate(AOTModule *module, AOTModuleInstance *parent,
20812081

20822082
#if WASM_ENABLE_LIBC_WASI != 0
20832083
if (!is_sub_inst) {
2084+
const WASIArguments *wasi_args = &args->wasi;
2085+
if (module->wasi_args.set_by_user) {
2086+
if (wasi_args->set_by_user) {
2087+
set_error_buf(error_buf, error_buf_size,
2088+
"WASI configuration was given via both of module "
2089+
"and InstantiationArgs2");
2090+
goto fail;
2091+
}
2092+
wasi_args = &module->wasi_args;
2093+
}
20842094
if (!wasm_runtime_init_wasi(
2085-
(WASMModuleInstanceCommon *)module_inst,
2086-
module->wasi_args.dir_list, module->wasi_args.dir_count,
2087-
module->wasi_args.map_dir_list, module->wasi_args.map_dir_count,
2088-
module->wasi_args.env, module->wasi_args.env_count,
2089-
module->wasi_args.addr_pool, module->wasi_args.addr_count,
2090-
module->wasi_args.ns_lookup_pool,
2091-
module->wasi_args.ns_lookup_count, module->wasi_args.argv,
2092-
module->wasi_args.argc, module->wasi_args.stdio[0],
2093-
module->wasi_args.stdio[1], module->wasi_args.stdio[2],
2094-
error_buf, error_buf_size))
2095+
(WASMModuleInstanceCommon *)module_inst, wasi_args->dir_list,
2096+
wasi_args->dir_count, wasi_args->map_dir_list,
2097+
wasi_args->map_dir_count, wasi_args->env, wasi_args->env_count,
2098+
wasi_args->addr_pool, wasi_args->addr_count,
2099+
wasi_args->ns_lookup_pool, wasi_args->ns_lookup_count,
2100+
wasi_args->argv, wasi_args->argc, wasi_args->stdio[0],
2101+
wasi_args->stdio[1], wasi_args->stdio[2], error_buf,
2102+
error_buf_size))
20952103
goto fail;
20962104
}
20972105
#endif

core/iwasm/interpreter/wasm_runtime.c

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3276,17 +3276,25 @@ wasm_instantiate(WASMModule *module, WASMModuleInstance *parent,
32763276
#if WASM_ENABLE_LIBC_WASI != 0
32773277
/* The sub-instance will get the wasi_ctx from main-instance */
32783278
if (!is_sub_inst) {
3279+
const WASIArguments *wasi_args = &args->wasi;
3280+
if (module->wasi_args.set_by_user) {
3281+
if (wasi_args->set_by_user) {
3282+
set_error_buf(error_buf, error_buf_size,
3283+
"WASI configuration was given via both of module "
3284+
"and InstantiationArgs2");
3285+
goto fail;
3286+
}
3287+
wasi_args = &module->wasi_args;
3288+
}
32793289
if (!wasm_runtime_init_wasi(
3280-
(WASMModuleInstanceCommon *)module_inst,
3281-
module->wasi_args.dir_list, module->wasi_args.dir_count,
3282-
module->wasi_args.map_dir_list, module->wasi_args.map_dir_count,
3283-
module->wasi_args.env, module->wasi_args.env_count,
3284-
module->wasi_args.addr_pool, module->wasi_args.addr_count,
3285-
module->wasi_args.ns_lookup_pool,
3286-
module->wasi_args.ns_lookup_count, module->wasi_args.argv,
3287-
module->wasi_args.argc, module->wasi_args.stdio[0],
3288-
module->wasi_args.stdio[1], module->wasi_args.stdio[2],
3289-
error_buf, error_buf_size)) {
3290+
(WASMModuleInstanceCommon *)module_inst, wasi_args->dir_list,
3291+
wasi_args->dir_count, wasi_args->map_dir_list,
3292+
wasi_args->map_dir_count, wasi_args->env, wasi_args->env_count,
3293+
wasi_args->addr_pool, wasi_args->addr_count,
3294+
wasi_args->ns_lookup_pool, wasi_args->ns_lookup_count,
3295+
wasi_args->argv, wasi_args->argc, wasi_args->stdio[0],
3296+
wasi_args->stdio[1], wasi_args->stdio[2], error_buf,
3297+
error_buf_size)) {
32903298
goto fail;
32913299
}
32923300
}

0 commit comments

Comments
 (0)