diff --git a/src/session.c b/src/session.c index 8c8508347..35177cf20 100644 --- a/src/session.c +++ b/src/session.c @@ -342,11 +342,10 @@ static void session_prepare_log_prefix(struct session *sess) * disabled and finally kills the file descriptor. This function requires that * sess->origin points to the incoming connection. */ -static void session_kill_embryonic(struct session *sess) +static void session_kill_embryonic(struct session *sess, struct task *task) { int level = LOG_INFO; struct connection *conn = __objt_conn(sess->origin); - struct task *task = conn->owner; unsigned int log = sess->fe->to_log; const char *err_msg; @@ -417,7 +416,7 @@ static struct task *session_expire_embryonic(struct task *t) if (!(t->state & TASK_WOKEN_TIMER)) return t; - session_kill_embryonic(sess); + session_kill_embryonic(sess, t); return NULL; } @@ -457,7 +456,7 @@ static int conn_complete_session(struct connection *conn) return 0; fail: - session_kill_embryonic(sess); + session_kill_embryonic(sess, task); return -1; } @@ -470,7 +469,7 @@ static int conn_update_session(struct connection *conn) struct session *sess = task->context; if (conn->flags & CO_FL_ERROR) { - session_kill_embryonic(sess); + session_kill_embryonic(sess, task); return -1; } return 0;