Skip to content

Commit 7869d31

Browse files
author
Sebastiano Merlino
committed
Avoid exceptions with NULL responses
1 parent 832c013 commit 7869d31

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

src/webserver.cpp

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -88,14 +88,17 @@ struct http_response_ptr
8888
}
8989
~http_response_ptr()
9090
{
91-
if((*num_references) == 0)
91+
if(num_references)
9292
{
93-
if(res->autodelete)
94-
delete res;
95-
delete num_references;
93+
if((*num_references) == 0)
94+
{
95+
if(res && res->autodelete)
96+
delete res;
97+
delete num_references;
98+
}
99+
else
100+
(*num_references)--;
96101
}
97-
else
98-
(*num_references)--;
99102
}
100103
http_response& operator* ()
101104
{
@@ -538,8 +541,11 @@ void webserver::sweet_kill()
538541
void webserver::request_completed (void *cls, struct MHD_Connection *connection, void **con_cls, enum MHD_RequestTerminationCode toe)
539542
{
540543
details::modded_request* mr = (struct details::modded_request*) *con_cls;
541-
if(mr->dhrs->ca != 0x0)
542-
mr->dhrs->ca->do_action();
544+
if(mr != 0x0 && mr->dhrs.res != 0x0)
545+
{
546+
if(mr->dhrs->ca != 0x0)
547+
mr->dhrs->ca->do_action();
548+
}
543549
if (NULL == mr)
544550
{
545551
return;

0 commit comments

Comments
 (0)