diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2011-06-21 15:42:11 +0200 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2011-06-21 15:42:11 +0200 |
commit | b71ef4abad365f95cf7adf3df14083940d531f1f (patch) | |
tree | c5744b7c3adb4e7ede7a282949cbfe41e414c813 /runtime/glbl.c | |
parent | b1a905c5eb7833d661be4a910697f49deb34c640 (diff) | |
parent | 86225089f2d0e82deb368e1688464e8ba84d24cf (diff) | |
download | rsyslog-b71ef4abad365f95cf7adf3df14083940d531f1f.tar.gz rsyslog-b71ef4abad365f95cf7adf3df14083940d531f1f.tar.xz rsyslog-b71ef4abad365f95cf7adf3df14083940d531f1f.zip |
Merge branch 'v5-stable' into beta
Conflicts:
ChangeLog
configure.ac
doc/manual.html
tests/diag.sh
tests/sndrcv_drvr.sh
Diffstat (limited to 'runtime/glbl.c')
-rw-r--r-- | runtime/glbl.c | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/runtime/glbl.c b/runtime/glbl.c index 71901dee..2fd52a5a 100644 --- a/runtime/glbl.c +++ b/runtime/glbl.c @@ -159,8 +159,29 @@ static void SetGlobalInputTermination(void) */ static rsRetVal setWorkDir(void __attribute__((unused)) *pVal, uchar *pNewVal) { - DEFiRet; + size_t lenDir; + int i; struct stat sb; + DEFiRet; + + /* remove trailing slashes */ + lenDir = ustrlen(pNewVal); + i = lenDir - 1; + while(i > 0 && pNewVal[i] == '/') { + --i; + } + + if(i < 0) { + errmsg.LogError(0, RS_RET_ERR_WRKDIR, "$WorkDirectory: empty value " + "- directive ignored"); + ABORT_FINALIZE(RS_RET_ERR_WRKDIR); + } + + if(i != (int) lenDir - 1) { + pNewVal[i+1] = '\0'; + errmsg.LogError(0, RS_RET_WRN_WRKDIR, "$WorkDirectory: trailing slashes " + "removed, new value is '%s'", pNewVal); + } if(stat((char*) pNewVal, &sb) != 0) { errmsg.LogError(0, RS_RET_ERR_WRKDIR, "$WorkDirectory: %s can not be " |