aboutsummaryrefslogtreecommitdiff
path: root/src/zenserver/projectstore/projectstore.cpp
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2024-02-05 12:29:43 +0100
committerGitHub <[email protected]>2024-02-05 12:29:43 +0100
commit79c44e3223c2bb9c6c49ccefa9cae71f1f2af336 (patch)
tree26fbdd670f5309596c9a801af84906b1aa5042de /src/zenserver/projectstore/projectstore.cpp
parentadded robin-map dependency to zenutil (diff)
downloadzen-79c44e3223c2bb9c6c49ccefa9cae71f1f2af336.tar.xz
zen-79c44e3223c2bb9c6c49ccefa9cae71f1f2af336.zip
respond with BadRequest result instead of throwing exception on bad request input (#648)
Diffstat (limited to 'src/zenserver/projectstore/projectstore.cpp')
-rw-r--r--src/zenserver/projectstore/projectstore.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/zenserver/projectstore/projectstore.cpp b/src/zenserver/projectstore/projectstore.cpp
index 6bb543d63..ea219f9b0 100644
--- a/src/zenserver/projectstore/projectstore.cpp
+++ b/src/zenserver/projectstore/projectstore.cpp
@@ -2838,8 +2838,18 @@ ProjectStore::Rpc(HttpServerRequest& HttpReq,
}
break;
case HttpContentType::kCbPackage:
- Package = ParsePackageMessage(Payload);
- Cb = Package.GetObject();
+ try
+ {
+ Package = ParsePackageMessage(Payload);
+ Cb = Package.GetObject();
+ }
+ catch (const std::invalid_argument& ex)
+ {
+ HttpReq.WriteResponse(HttpResponseCode::BadRequest,
+ HttpContentType::kText,
+ fmt::format("Failed to parse package request, reason: '{}'", ex.what()));
+ return false;
+ }
if (!Cb)
{
HttpReq.WriteResponse(HttpResponseCode::BadRequest,