Patch af5149 introduced an issue which can be detected only on out of
memory conditions : a LIST_DEL() may be performed on an uninitialized
struct member instead of a LIST_INIT() during the accept() phase,
causing crashes and memory corruption to occur.
This issue was detected and diagnosed by the Exceliance R&D team.
This is 1.5-specific and very recent, so no existing deployment should
be impacted.
LIST_DEL(&sess->by_srv);
}
+static void inline session_init_srv_conn(struct session *sess)
+{
+ sess->srv_conn = NULL;
+ LIST_INIT(&sess->by_srv);
+}
+
#endif /* _PROTO_SESSION_H */
/*
stream_sock_prepare_interface(&s->si[1]);
s->si[1].release = NULL;
- session_del_srv_conn(s);
+ session_init_srv_conn(s);
clear_target(&s->target);
s->pend_pos = NULL;
if (likely(s->fe->options2 & PR_O2_INDEPSTR))
s->si[1].flags |= SI_FL_INDEP_STR;
- session_del_srv_conn(s);
+ session_init_srv_conn(s);
clear_target(&s->target);
s->pend_pos = NULL;