aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorluigi1111 <luigi1111w@gmail.com>2023-02-06 12:25:13 -0500
committerluigi1111 <luigi1111w@gmail.com>2023-02-06 12:25:13 -0500
commit85702d70afa9896b883f032bc4ef4f9851c6cb27 (patch)
tree2a75466dd4b5a28164dbb3438e893e100212465d
parentMerge pull request #8691 (diff)
parentepee: when loading a JSON RPC payload, ensure params is an object (diff)
downloadmonero-85702d70afa9896b883f032bc4ef4f9851c6cb27.tar.xz
Merge pull request #8692
b67e931 epee: when loading a JSON RPC payload, ensure params is an object (moneromooo-monero)
-rw-r--r--contrib/epee/include/net/http_server_handlers_map2.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/contrib/epee/include/net/http_server_handlers_map2.h b/contrib/epee/include/net/http_server_handlers_map2.h
index 848b8ffc4..00967b2da 100644
--- a/contrib/epee/include/net/http_server_handlers_map2.h
+++ b/contrib/epee/include/net/http_server_handlers_map2.h
@@ -152,6 +152,16 @@
epee::serialization::store_t_to_json(static_cast<epee::json_rpc::error_response&>(rsp), response_info.m_body); \
return true; \
} \
+ epee::serialization::storage_entry se; \
+ if(ps.get_value("params", se, nullptr) && se.type() != typeid(epee::serialization::section)) \
+ { \
+ boost::value_initialized<epee::json_rpc::error_response> rsp; \
+ static_cast<epee::json_rpc::error_response&>(rsp).jsonrpc = "2.0"; \
+ static_cast<epee::json_rpc::error_response&>(rsp).error.code = -32701; \
+ static_cast<epee::json_rpc::error_response&>(rsp).error.message = "Params is not an object"; \
+ epee::serialization::store_t_to_json(static_cast<epee::json_rpc::error_response&>(rsp), response_info.m_body); \
+ return true; \
+ } \
epee::serialization::storage_entry id_; \
id_ = epee::serialization::storage_entry(std::string()); \
ps.get_value("id", id_, nullptr); \