jeremycw / httpserver.h

Single header library for writing non-blocking HTTP servers in C
MIT License
1.78k stars 143 forks source link

Memory leak when application is terminated while a keep-alive connection is still open #44

Open sternenseemann opened 4 years ago

sternenseemann commented 4 years ago

When dealing with HTTP keep-alive connections in practice, terminating a httpserver.h based application via a SIGTERM handler similar to the one in test/main.c will leak memory as free(http_server) isn't enough to get rid of whatever is allocated per connection.

To reproduce:

valgrind ./http-server &
pid=$!
firefox http://localhost:8080/ # or any other typical browser
kill $pid

I haven't looked into it yet, it'd probably be possible to provide a cleanup function to free everything related to keep-alive connections as well?