mirror of
https://github.com/matrix-construct/construct
synced 2024-10-03 22:28:52 +02:00
ircd:Ⓜ️ Stringify request verification into tls buffer.
This commit is contained in:
parent
b9bb4b4a45
commit
a2ecd6339c
1 changed files with 23 additions and 2 deletions
|
@ -194,9 +194,30 @@ ircd::m::request::verify(const ed25519::pk &pk,
|
|||
const ed25519::sig &sig)
|
||||
const
|
||||
{
|
||||
const json::strung object
|
||||
static const size_t request_max
|
||||
{
|
||||
*this
|
||||
1_MiB
|
||||
};
|
||||
|
||||
const size_t request_size
|
||||
{
|
||||
json::serialized(*this)
|
||||
};
|
||||
|
||||
const ctx::critical_assertion ca;
|
||||
thread_local char buf[request_max];
|
||||
if(unlikely(request_size > sizeof(buf)))
|
||||
throw m::error
|
||||
{
|
||||
http::PAYLOAD_TOO_LARGE, "M_REQUEST_TOO_LARGE",
|
||||
"The request size %zu bytes exceeds maximum of %zu bytes",
|
||||
request_size,
|
||||
request_max
|
||||
};
|
||||
|
||||
const json::object object
|
||||
{
|
||||
stringify(mutable_buffer{buf}, *this)
|
||||
};
|
||||
|
||||
return verify(pk, sig, object);
|
||||
|
|
Loading…
Reference in a new issue