From 911faa22461959d7eca6882b33973ff410776ed2 Mon Sep 17 00:00:00 2001 From: Juan Cruz Viotti Date: Tue, 24 Feb 2026 13:22:29 -0400 Subject: [PATCH] Better resist invalid route ids in the server Signed-off-by: Juan Cruz Viotti --- src/server/server.cc | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/server/server.cc b/src/server/server.cc index 669a0882..e85cd492 100644 --- a/src/server/server.cc +++ b/src/server/server.cc @@ -282,7 +282,16 @@ static auto dispatch(const sourcemeta::core::URITemplateRouterView &router, matches[index] = value; })}; - HANDLERS[handler](base, matches, request, response); + // For backwards compatibility in case the generated routes + // don't match this server version + if (handler >= std::size(HANDLERS)) [[unlikely]] { + json_error( + request, response, sourcemeta::one::STATUS_NOT_IMPLEMENTED, + "unknown-handler-code", + "This server version does not implement the handler for this URL"); + } else { + HANDLERS[handler](base, matches, request, response); + } } else { json_error(request, response, sourcemeta::one::STATUS_NOT_ACCEPTABLE, "cannot-satisfy-content-encoding",