From: Willy Tarreau Date: Sat, 26 Feb 2011 14:14:15 +0000 (+0100) Subject: [BUG] acl: fd leak when reading patterns from file X-Git-Tag: v1.5-dev8~311 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6a8097f034b7b872c662700486090a57515d10c0;p=thirdparty%2Fhaproxy.git [BUG] acl: fd leak when reading patterns from file The fd is not closed after patterns have successfully been read from a file. Bug reported by Bertrand Jacquin. Should be backported to 1.4. --- diff --git a/src/acl.c b/src/acl.c index c8a5a88603..fcfbf9fc2e 100644 --- a/src/acl.c +++ b/src/acl.c @@ -1059,6 +1059,7 @@ static int acl_read_patterns_from_file( struct acl_keyword *aclkw, const char *args[2]; struct acl_pattern *pattern; int opaque; + int ret = 0; file = fopen(filename, "r"); if (!file) @@ -1119,15 +1120,14 @@ static int acl_read_patterns_from_file( struct acl_keyword *aclkw, pattern = NULL; /* get a new one */ } } - if (pattern) - free_pattern(pattern); - return 1; + + ret = 1; /* success */ out_free_pattern: free_pattern(pattern); out_close: fclose(file); - return 0; + return ret; } /* Parse an ACL expression starting at [0], and return it.