aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2023-02-21 14:07:34 +0100
committerGitHub <[email protected]>2023-02-21 05:07:34 -0800
commita4f9a93969d8d2dd49632d9d51117153e749a77e (patch)
tree03c34bf5a373f5d58dd49a8f459b1c98f2bb0f34
parentadd `--showmethodstats` option for rpc replay to show method statistics (#233) (diff)
downloadzen-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.md3
-rw-r--r--VERSION.txt2
-rw-r--r--zenserver/projectstore/projectstore.cpp28
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);