diff --git a/__enclave/virt_enclave/Cargo.lock b/__enclave/virt_enclave/Cargo.lock index 93270e6..650562a 100644 --- a/__enclave/virt_enclave/Cargo.lock +++ b/__enclave/virt_enclave/Cargo.lock @@ -521,6 +521,12 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "json" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "078e285eafdfb6c4b434e0d31e8cfcb5115b651496faca5749b88fafd4f23bfd" + [[package]] name = "kernel32-sys" version = "0.2.2" @@ -1421,6 +1427,7 @@ name = "virt_enclave" version = "0.1.0" dependencies = [ "hex", + "json", "lazy_static", "quick-js", "ring", diff --git a/__enclave/virt_enclave/Cargo.toml b/__enclave/virt_enclave/Cargo.toml index 9f616a0..2e3ae7f 100644 --- a/__enclave/virt_enclave/Cargo.toml +++ b/__enclave/virt_enclave/Cargo.toml @@ -16,3 +16,4 @@ rust_util = "0.6" lazy_static = "1.4" tokio = { version = "0.2", features = ["full"] } warp = "0.2" +json = "0.12" diff --git a/__enclave/virt_enclave/src/qjs.rs b/__enclave/virt_enclave/src/qjs.rs index acbd181..ba43ed8 100644 --- a/__enclave/virt_enclave/src/qjs.rs +++ b/__enclave/virt_enclave/src/qjs.rs @@ -46,11 +46,9 @@ impl QuickJSContext { '_' }).collect(); - // TODO check JSON valid - // let v: Option> = serde_json::from_str(params).ok(); - // if v.is_none() { - // return Err(rust_util::new_box_error("Params is not valid JSON array!")); - // } + if let Err(e) = json::parse(params) { + return Err(rust_util::new_box_error(&format!("Params is not valid JSON array: {}", e))); + } self.context.eval(&format!("__PUBLIC_{}.apply(null, {})", f, params)).map_err(|e| e.into()) } }