summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2016-08-01 23:26:22 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2016-08-10 10:27:11 +0200
commitbc9ddf987d3c454e1cdca29f44508914a0f5f5d5 (patch)
treebf42c21eba99ba22da0018026ec3e3bce14cf628 /src
parentf92a1a5c4a8761c39a76b264859f0ff2c8f71179 (diff)
scanner: don't fall back on current directory if include is not found
This resolves an ambiguity if the same file name is used both under sysconfdir and the current working directory. You can use dot slash ./ to explicitly refer to files in the current working directory. Closes: https://bugzilla.netfilter.org/show_bug.cgi?id=1040 Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src')
-rw-r--r--src/scanner.l13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/scanner.l b/src/scanner.l
index 6f1a5512..cb2ea320 100644
--- a/src/scanner.l
+++ b/src/scanner.l
@@ -639,16 +639,15 @@ int scanner_include_file(void *scanner, const char *filename,
if (f != NULL)
break;
}
- }
- if (f == NULL) {
+ } else {
f = fopen(filename, "r");
- if (f == NULL) {
- erec = error(loc, "Could not open file \"%s\": %s\n",
- filename, strerror(errno));
- goto err;
- }
name = filename;
}
+ if (f == NULL) {
+ erec = error(loc, "Could not open file \"%s\": %s\n",
+ filename, strerror(errno));
+ goto err;
+ }
erec = scanner_push_file(scanner, name, f, loc);
if (erec != NULL)