diff --git a/src/session.c b/src/session.c index ed55ca4dc..76bc8f399 100644 --- a/src/session.c +++ b/src/session.c @@ -232,7 +232,9 @@ int session_accept(struct listener *l, int cfd, struct sockaddr_storage *addr) out_close: if (ret < 0 && l->xprt == &raw_sock && p->mode == PR_MODE_HTTP) { /* critical error, no more memory, try to emit a 500 response */ - struct chunk *err_msg = http_error_message(s, HTTP_ERR_500); + struct chunk *err_msg = &p->errmsg[HTTP_ERR_500]; + if (!err_msg->str) + err_msg = &http_err_chunks[HTTP_ERR_500]; send(cfd, err_msg->str, err_msg->len, MSG_DONTWAIT|MSG_NOSIGNAL); }