summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2012-11-14 08:49:57 +0100
committerRainer Gerhards <rgerhards@adiscon.com>2012-11-14 08:49:57 +0100
commit1d10872062828aede81c775bf19023f3ca8f85fa (patch)
tree40b9cfb73b74c240d7e51b9e110d24ca37f8397c
parent0f6300f1e6a038f37c406b2362218ea043def55b (diff)
downloadrsyslog-1d10872062828aede81c775bf19023f3ca8f85fa.tar.gz
rsyslog-1d10872062828aede81c775bf19023f3ca8f85fa.tar.bz2
rsyslog-1d10872062828aede81c775bf19023f3ca8f85fa.zip
make sure inaccessible config file is not tried to be processed
The processing loop was not terminated when an unaccessible file was detected, and so processing was done using unitialized data, which could lead to all sorts of problems. Also did some minor cleanup.
-rw-r--r--grammar/rainerscript.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/grammar/rainerscript.c b/grammar/rainerscript.c
index e54c9060..27ff5376 100644
--- a/grammar/rainerscript.c
+++ b/grammar/rainerscript.c
@@ -2777,6 +2777,7 @@ cnfDoInclude(char *name)
finalName = nameBuf;
}
}
+
/* Use GLOB_MARK to append a trailing slash for directories. */
/* Use GLOB_NOMAGIC to detect wildcards that match nothing. */
result = glob(finalName, GLOB_MARK | GLOB_NOMAGIC, NULL, &cfgFiles);
@@ -2796,13 +2797,12 @@ cnfDoInclude(char *name)
for(i = 0; i < cfgFiles.gl_pathc; i++) {
cfgFile = cfgFiles.gl_pathv[i];
-
- if(stat(cfgFile, &fileInfo) != 0)
- {
+ if(stat(cfgFile, &fileInfo) != 0) {
char errStr[1024];
rs_strerror_r(errno, errStr, sizeof(errStr));
parser_errmsg("error accessing config file or directory '%s': %s",
cfgFile, errStr);
+ continue;
}
if(S_ISREG(fileInfo.st_mode)) { /* config file */