summaryrefslogtreecommitdiffstats
path: root/runtime/glbl.c
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2011-06-21 15:42:11 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2011-06-21 15:42:11 +0200
commitb71ef4abad365f95cf7adf3df14083940d531f1f (patch)
treec5744b7c3adb4e7ede7a282949cbfe41e414c813 /runtime/glbl.c
parentb1a905c5eb7833d661be4a910697f49deb34c640 (diff)
parent86225089f2d0e82deb368e1688464e8ba84d24cf (diff)
downloadrsyslog-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.c23
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 "