BUG/MEDIUM: http: fix possible parser crash when parsing erroneous "http-request redirect" rules

Baptiste Assmann reported a bug affecting the "http-request redirect"
parser. It may randomly crash when reporting an error message if the
syntax is not OK. It happens that this is caused by the output error
message pointer which was not initialized to NULL.

This bug is 1.5-specific (introduced in dev17), no backport is needed.
This commit is contained in:
Willy Tarreau 2013-11-18 18:04:25 +01:00
parent 39c63c56d2
commit 6d4890cfea

View File

@ -8491,7 +8491,7 @@ struct http_req_rule *parse_http_req_cond(const char **args, const char *file, i
cur_arg += 2; cur_arg += 2;
} else if (strcmp(args[0], "redirect") == 0) { } else if (strcmp(args[0], "redirect") == 0) {
struct redirect_rule *redir; struct redirect_rule *redir;
char *errmsg; char *errmsg = NULL;
if ((redir = http_parse_redirect_rule(file, linenum, proxy, (const char **)args + 1, &errmsg)) == NULL) { if ((redir = http_parse_redirect_rule(file, linenum, proxy, (const char **)args + 1, &errmsg)) == NULL) {
Alert("parsing [%s:%d] : error detected in %s '%s' while parsing 'http-request %s' rule : %s.\n", Alert("parsing [%s:%d] : error detected in %s '%s' while parsing 'http-request %s' rule : %s.\n",