diff options
| author | Dan Engelbrecht <[email protected]> | 2023-02-21 14:07:34 +0100 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-02-21 05:07:34 -0800 |
| commit | a4f9a93969d8d2dd49632d9d51117153e749a77e (patch) | |
| tree | 03c34bf5a373f5d58dd49a8f459b1c98f2bb0f34 | |
| parent | add `--showmethodstats` option for rpc replay to show method statistics (#233) (diff) | |
| download | zen-a4f9a93969d8d2dd49632d9d51117153e749a77e.tar.xz zen-a4f9a93969d8d2dd49632d9d51117153e749a77e.zip | |
UE 177395 - fix crash when using asio http server and requesting info on non-existing chunk (#235)
* Dont' write httpreq responses with content type text for empty strings
| -rw-r--r-- | CHANGELOG.md | 3 | ||||
| -rw-r--r-- | VERSION.txt | 2 | ||||
| -rw-r--r-- | zenserver/projectstore/projectstore.cpp | 28 |
3 files changed, 32 insertions, 1 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 638e9261e..db04c7290 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,9 @@ - Improvement: FileCas now keeps an up to date index of all the entries improving performance when getting cache misses on large payloads - Changed: Exit with failure code on port conflict rather than reporting crash to Sentry +## 0.2.4 +- Bugfix: Don't send empty http responses with content type set to Text. Fixes UE-177895 + ## 0.2.3 - Feature: Add support for "packagedata" mapping in oplog entries - Feature: Zen command line tool `project-create` to create a project store project diff --git a/VERSION.txt b/VERSION.txt index 373f8c6f0..72f9fa820 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -0.2.3
\ No newline at end of file +0.2.4
\ No newline at end of file diff --git a/zenserver/projectstore/projectstore.cpp b/zenserver/projectstore/projectstore.cpp index c3fba7dff..184bba022 100644 --- a/zenserver/projectstore/projectstore.cpp +++ b/zenserver/projectstore/projectstore.cpp @@ -2423,6 +2423,10 @@ HttpProjectService::HttpProjectService(CidStore& Store, ProjectStore* Projects, static_cast<int>(Result.first), Result.second); } + if (Result.second.empty()) + { + return HttpReq.WriteResponse(Result.first); + } return HttpReq.WriteResponse(Result.first, HttpContentType::kText, Result.second); }, HttpVerb::kGet); @@ -2454,6 +2458,10 @@ HttpProjectService::HttpProjectService(CidStore& Store, ProjectStore* Projects, static_cast<int>(Result.first), Result.second); } + if (Result.second.empty()) + { + return HttpReq.WriteResponse(Result.first); + } return HttpReq.WriteResponse(Result.first, HttpContentType::kText, Result.second); }, HttpVerb::kGet); @@ -2518,6 +2526,10 @@ HttpProjectService::HttpProjectService(CidStore& Store, ProjectStore* Projects, static_cast<int>(Result.first), Result.second); } + if (Result.second.empty()) + { + return HttpReq.WriteResponse(Result.first); + } return HttpReq.WriteResponse(Result.first, HttpContentType::kText, Result.second); }, HttpVerb::kGet | HttpVerb::kHead); @@ -2557,6 +2569,10 @@ HttpProjectService::HttpProjectService(CidStore& Store, ProjectStore* Projects, static_cast<int>(Result.first), Result.second); } + if (Result.second.empty()) + { + return HttpReq.WriteResponse(Result.first); + } return HttpReq.WriteResponse(Result.first, HttpContentType::kText, Result.second); } case HttpVerb::kPost: @@ -2575,6 +2591,10 @@ HttpProjectService::HttpProjectService(CidStore& Store, ProjectStore* Projects, static_cast<int>(Result.first), Result.second); } + if (Result.second.empty()) + { + return HttpReq.WriteResponse(Result.first); + } return HttpReq.WriteResponse(Result.first, HttpContentType::kText, Result.second); } break; @@ -3107,6 +3127,10 @@ HttpProjectService::HttpProjectService(CidStore& Store, ProjectStore* Projects, { return HttpReq.WriteResponse(HttpResponseCode::OK, Response); } + if (Result.second.empty()) + { + return HttpReq.WriteResponse(Result.first); + } return HttpReq.WriteResponse(Result.first, HttpContentType::kText, Result.second); }, HttpVerb::kPost); @@ -3131,6 +3155,10 @@ HttpProjectService::HttpProjectService(CidStore& Store, ProjectStore* Projects, { return HttpReq.WriteResponse(HttpResponseCode::OK, Response); } + if (Result.second.empty()) + { + return HttpReq.WriteResponse(Result.first); + } return HttpReq.WriteResponse(Result.first, HttpContentType::kText, Result.second); }, HttpVerb::kGet); |