You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The reason for the bug is the same as in #936: dereferencing freed TfwConn. The dereferencing happens on hm->conn->msg in tfw_http_conn_msg_free(). The first warning WARN_ON_ONCE(!list_empty(&req->fwd_list)); is crucial since it means that the request is freed being in fwd_list, so the list is corrupted and the request can be freed again. The root cause is that there are many places where we just get resp->req now and free the request w/o removing it from fwd_list.
…ss().
2. #959: print a warning and let the system crash if we can't remove a
server grooup.
3. Add req->fwd_list and req->nip_list warnings to make sure that the req
is removed from the list when we go to code where we don't have a pointer
to the server connection.
4. Replace tfw_http_msg_free() by tfw_http_conn_msg_free() in couple of
places to put connections on requests freeing to avoid memory leakage
on connections reference counters.
5. Code leanups all around.
Prerequisites
Current Tempesta FW master as of ac6f085 with #926 fixed kernel https://github.com/tempesta-tech/linux-4.9.35-tfw/pull/5 . Run full test suite with default settings.
Crash
All the tests passes until
Since
regression.test_invalid.TestInvalidResponse
seems finished it's unclear which test exactly causes the bug.Oopses
The text was updated successfully, but these errors were encountered: