[MINOR] fix possible crash in debug mode with invalid responses

When trying to display an invalid request or response we received,
we must at least check that we have identified something looking
like a start of message, otherwise we can dereference a NULL pointer.
This commit is contained in:
Willy Tarreau 2010-04-16 09:14:45 +02:00
parent e52564c4dd
commit c3bfeebdb4
1 changed files with 2 additions and 0 deletions

View File

@ -2408,6 +2408,7 @@ int http_wait_for_request(struct session *s, struct buffer *req, int an_bit)
/* 1: we might have to print this header in debug mode */ /* 1: we might have to print this header in debug mode */
if (unlikely((global.mode & MODE_DEBUG) && if (unlikely((global.mode & MODE_DEBUG) &&
(!(global.mode & MODE_QUIET) || (global.mode & MODE_VERBOSE)) && (!(global.mode & MODE_QUIET) || (global.mode & MODE_VERBOSE)) &&
msg->sol &&
(msg->msg_state >= HTTP_MSG_BODY || msg->msg_state == HTTP_MSG_ERROR))) { (msg->msg_state >= HTTP_MSG_BODY || msg->msg_state == HTTP_MSG_ERROR))) {
char *eol, *sol; char *eol, *sol;
@ -4312,6 +4313,7 @@ int http_wait_for_response(struct session *s, struct buffer *rep, int an_bit)
/* 1: we might have to print this header in debug mode */ /* 1: we might have to print this header in debug mode */
if (unlikely((global.mode & MODE_DEBUG) && if (unlikely((global.mode & MODE_DEBUG) &&
(!(global.mode & MODE_QUIET) || (global.mode & MODE_VERBOSE)) && (!(global.mode & MODE_QUIET) || (global.mode & MODE_VERBOSE)) &&
msg->sol &&
(msg->msg_state >= HTTP_MSG_BODY || msg->msg_state == HTTP_MSG_ERROR))) { (msg->msg_state >= HTTP_MSG_BODY || msg->msg_state == HTTP_MSG_ERROR))) {
char *eol, *sol; char *eol, *sol;