From 5109196275d0e7a33f5d029bff96aa0fd58d759a Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Mon, 3 Jan 2011 21:04:10 +0100 Subject: [PATCH] [BUG] acl: fix handling of empty lines in pattern files Gabriel Sosa reported that haproxy unexpectedly reports an error when a pattern file loaded by an ACL contains an empty line. The test was present but inefficient as it did not consider the '\n' as the end of the line. This fix relies on the line length instead. It should be backported to 1.4. --- src/acl.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/acl.c b/src/acl.c index be28ca9e7..c8a5a8860 100644 --- a/src/acl.c +++ b/src/acl.c @@ -1083,15 +1083,16 @@ static int acl_read_patterns_from_file( struct acl_keyword *aclkw, while (*c == ' ' || *c == '\t') c++; - /* empty lines are ignored too */ - if (!*c) - continue; args[0] = c; while (*c && *c != '\n' && *c != '\r') c++; *c = 0; + /* empty lines are ignored too */ + if (c == args[0]) + continue; + /* we keep the previous pattern along iterations as long as it's not used */ if (!pattern) pattern = (struct acl_pattern *)malloc(sizeof(*pattern));