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