summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2013-05-10 17:34:05 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2013-05-10 17:34:05 +0200
commitc397616d772714cf0d71870dc8f61c7a999bf939 (patch)
tree72d96dca2773b910504809924b63af54a1d38ff7
parentc142c2f69401dc800434efd6b901d1c4c2f27069 (diff)
parent0817fc95a810df497c52200c772fac743ca84dde (diff)
downloadrsyslog-c397616d772714cf0d71870dc8f61c7a999bf939.tar.gz
rsyslog-c397616d772714cf0d71870dc8f61c7a999bf939.tar.bz2
rsyslog-c397616d772714cf0d71870dc8f61c7a999bf939.zip
Merge branch 'master' of git+ssh://git.adiscon.com/git/rsyslog
-rw-r--r--ChangeLog6
-rw-r--r--runtime/queue.c6
-rw-r--r--runtime/rsyslog.h1
3 files changed, 13 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index b927d130..435cae25 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,10 @@
---------------------------------------------------------------------------
+Version 7.3.15 [beta] 2013-05-0?
+- bugfix: segfault on startup if a disk queue was configure without file
+ name
+ Now this triggers an error message and the queue is changed to
+ linkedList type.
+---------------------------------------------------------------------------
Version 7.3.14 [beta] 2013-05-06
- bugfix: some man pages were not properly installed
either rscryutil or rsgtutil man was installed, but not both
diff --git a/runtime/queue.c b/runtime/queue.c
index 600b5688..85b1e45b 100644
--- a/runtime/queue.c
+++ b/runtime/queue.c
@@ -2760,6 +2760,12 @@ qqueueApplyCnfParam(qqueue_t *pThis, struct cnfparamvals *pvals)
"param '%s'\n", pblk.descr[i].name);
}
}
+ if(pThis->qType == QUEUETYPE_DISK && pThis->pszFilePrefix == NULL) {
+ errmsg.LogError(0, RS_RET_QUEUE_DISK_NO_FN, "error on queue '%s', disk mode selected, but "
+ "no queue file name given; queue type changed to 'linkedList'",
+ obj.GetName((obj_t*) pThis));
+ pThis->qType = QUEUETYPE_LINKEDLIST;
+ }
cnfparamvalsDestruct(pvals, &pblk);
return RS_RET_OK;
}
diff --git a/runtime/rsyslog.h b/runtime/rsyslog.h
index a901d2ef..47b34783 100644
--- a/runtime/rsyslog.h
+++ b/runtime/rsyslog.h
@@ -412,6 +412,7 @@ enum rsRetVal_ /** return value. All methods return this if not specified oth
RS_RET_EI_INVLD_FILE = -2325,/**< header indicates the file is no .encinfo file */
RS_RET_CRY_INVLD_ALGO = -2326,/**< user specified invalid (unkonwn) crypto algorithm */
RS_RET_CRY_INVLD_MODE = -2327,/**< user specified invalid (unkonwn) crypto mode */
+ RS_RET_QUEUE_DISK_NO_FN = -2328,/**< disk queue configured, but filename not set */
/* RainerScript error messages (range 1000.. 1999) */
RS_RET_SYSVAR_NOT_FOUND = 1001, /**< system variable could not be found (maybe misspelled) */