diff options
| author | Dan Engelbrecht <[email protected]> | 2023-09-13 10:50:56 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-09-13 16:50:56 +0200 |
| commit | 10587f2dd7dbda4184db2cd7994945ffc91db446 (patch) | |
| tree | fe9ab43363ea3431f22e0821eba7298df07ec559 | |
| parent | minor: log fix (diff) | |
| download | zen-10587f2dd7dbda4184db2cd7994945ffc91db446.tar.xz zen-10587f2dd7dbda4184db2cd7994945ffc91db446.zip | |
fix url parsing crash (#399)
* Don't index out of string_view range when parsing URI in httpsys
| -rw-r--r-- | CHANGELOG.md | 1 | ||||
| -rw-r--r-- | src/zenserver/frontend/frontend.cpp | 2 |
2 files changed, 2 insertions, 1 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 9cdfdcd58..c9f5fe82f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ - Feature: Added `--cache-write-log` and `--cache-access-log` command line option to enable/disable cache write/access logs - Bugfix: Make sure cache logging thread does not crash on errors - Bugfix: Make sure error logging or destructors don't throw exception when trying to get file name from handle +- Bugfix: Don't index out of string_view range when parsing URI in httpsys - Improvement: Sorting attachments in oplog blocks based on Op key to group op attachments together - Improvement: Don't split attachments associated with the same op across oplog blocks diff --git a/src/zenserver/frontend/frontend.cpp b/src/zenserver/frontend/frontend.cpp index b743ca939..8c8e5cb9c 100644 --- a/src/zenserver/frontend/frontend.cpp +++ b/src/zenserver/frontend/frontend.cpp @@ -89,7 +89,7 @@ HttpFrontendService::HandleRequest(zen::HttpServerRequest& Request) using namespace std::literals; std::string_view Uri = Request.RelativeUriWithExtension(); - for (; Uri[0] == '/'; Uri = Uri.substr(1)) + for (; Uri.length() > 0 && Uri[0] == '/'; Uri = Uri.substr(1)) ; if (Uri.empty()) { |