Accept zero length queries

This commit is contained in:
Alex Hultman
2023-04-30 22:30:06 +02:00
parent e5b1d3f83c
commit a658d1616a
3 changed files with 23 additions and 1 deletions
+1 -1
View File
@@ -44,7 +44,7 @@ namespace uWS {
if (statement.length() && statement[0] == key[0]) {
/* Equal sign must be present and not in the end of statement */
auto equality = statement.find('=');
if (equality != std::string_view::npos && equality != statement.length() - 1) {
if (/*equality != std::string_view::npos && equality != statement.length() - 1*/ true) {
std::string_view statementKey = statement.substr(0, equality);
std::string_view statementValue = statement.substr(equality + 1);
+2
View File
@@ -1,4 +1,6 @@
default:
$(CXX) -std=c++17 -fsanitize=address Query.cpp -o Query
./Query
$(CXX) -std=c++17 -fsanitize=address ChunkedEncoding.cpp -o ChunkedEncoding
./ChunkedEncoding
$(CXX) -std=c++17 -fsanitize=address TopicTree.cpp -o TopicTree
+20
View File
@@ -0,0 +1,20 @@
#include <iostream>
#include <cassert>
#include "../src/QueryParser.h"
int main() {
{
std::string buf = "?test1=&test2=someValue";
assert(uWS::getDecodedQueryValue("test2", (char *) buf.data()) == "someValue");
}
{
std::string buf = "?test1=&test2=someValue";
assert(uWS::getDecodedQueryValue("test1", (char *) buf.data()) == "");
assert(uWS::getDecodedQueryValue("test2", (char *) buf.data()) == "someValue");
}
return 0;
}