mirror of
https://github.com/yhirose/cpp-httplib.git
synced 2026-10-24 12:04:40 +00:00
Guard nullptr res in KeepAliveTest proxy template (#2443)
When the upstream request to httpbingo.org transiently fails, cli.Get() returns nullptr and the next line dereferences it (res->status / res->body), producing a SEGV in std::string::begin() under ASan. Sibling templates in the same file already use ASSERT_TRUE(res != nullptr); apply the same guard to the four Get() call sites in KeepAliveTest so a flaky network turns into a clean test failure instead of a crash.
This commit is contained in:
1 parent
eb49a304b6
commit
a1fdc07f34
1 file changed
+4
@@ -291,10 +291,12 @@ template <typename T> void KeepAliveTest(T &cli, bool basic) {
|
|||||||
|
|
||||||
{
|
{
|
||||||
auto res = cli.Get("/get");
|
auto res = cli.Get("/get");
|
||||||
|
ASSERT_TRUE(res != nullptr);
|
||||||
EXPECT_EQ(StatusCode::OK_200, res->status);
|
EXPECT_EQ(StatusCode::OK_200, res->status);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
auto res = cli.Get("/redirect/2");
|
auto res = cli.Get("/redirect/2");
|
||||||
|
ASSERT_TRUE(res != nullptr);
|
||||||
EXPECT_EQ(StatusCode::OK_200, res->status);
|
EXPECT_EQ(StatusCode::OK_200, res->status);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -306,6 +308,7 @@ template <typename T> void KeepAliveTest(T &cli, bool basic) {
|
|||||||
|
|
||||||
for (auto path : paths) {
|
for (auto path : paths) {
|
||||||
auto res = cli.Get(path.c_str());
|
auto res = cli.Get(path.c_str());
|
||||||
|
ASSERT_TRUE(res != nullptr);
|
||||||
auto body = normalizeJson(res->body);
|
auto body = normalizeJson(res->body);
|
||||||
EXPECT_TRUE(body.find("\"authenticated\":true") != std::string::npos);
|
EXPECT_TRUE(body.find("\"authenticated\":true") != std::string::npos);
|
||||||
EXPECT_TRUE(body.find("\"user\":\"hello\"") != std::string::npos);
|
EXPECT_TRUE(body.find("\"user\":\"hello\"") != std::string::npos);
|
||||||
@@ -317,6 +320,7 @@ template <typename T> void KeepAliveTest(T &cli, bool basic) {
|
|||||||
int count = 10;
|
int count = 10;
|
||||||
while (count--) {
|
while (count--) {
|
||||||
auto res = cli.Get("/get");
|
auto res = cli.Get("/get");
|
||||||
|
ASSERT_TRUE(res != nullptr);
|
||||||
EXPECT_EQ(StatusCode::OK_200, res->status);
|
EXPECT_EQ(StatusCode::OK_200, res->status);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user