Skip to content

Commit 7263a04

Browse files
authored
wasi-nn: add a missing address validation for get_output (#4535)
cf. #4533
1 parent 9f8a6ab commit 7263a04

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

core/iwasm/libraries/wasi-nn/src/wasi_nn.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -795,6 +795,22 @@ wasi_nn_get_output(wasm_exec_env_t exec_env, graph_execution_context ctx,
795795
if (success != (res = is_model_initialized(wasi_nn_ctx)))
796796
goto fail;
797797

798+
#if WASM_ENABLE_WASI_EPHEMERAL_NN != 0
799+
if (!wasm_runtime_validate_native_addr(instance, output_tensor,
800+
output_tensor_len)) {
801+
NN_ERR_PRINTF("output_tensor is invalid");
802+
res = invalid_argument;
803+
goto fail;
804+
}
805+
#else
806+
if (!wasm_runtime_validate_native_addr(instance, output_tensor,
807+
*output_tensor_size)) {
808+
NN_ERR_PRINTF("output_tensor is invalid");
809+
res = invalid_argument;
810+
goto fail;
811+
}
812+
#endif
813+
798814
if (!wasm_runtime_validate_native_addr(instance, output_tensor_size,
799815
(uint64)sizeof(uint32_t))) {
800816
NN_ERR_PRINTF("output_tensor_size is invalid");

0 commit comments

Comments
 (0)