[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 c8a5a88..fcfbf9f 100644
--- a/src/acl.c
+++ b/src/acl.c
@@ -1059,6 +1059,7 @@
const char *args[2];
struct acl_pattern *pattern;
int opaque;
+ int ret = 0;
file = fopen(filename, "r");
if (!file)
@@ -1119,15 +1120,14 @@
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 <args>[0], and return it.