summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2013-05-08 09:41:12 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2013-05-08 09:41:12 +0200
commitfc861c0a504bfea58fea66bbf65738446117d668 (patch)
tree6c5183523c3ad608904119bfb109cd802ee37f05
parent40de50a892ffc3fa16c49c8ba91c7a1cd5af1b95 (diff)
parent0817fc95a810df497c52200c772fac743ca84dde (diff)
downloadrsyslog-fc861c0a504bfea58fea66bbf65738446117d668.tar.gz
rsyslog-fc861c0a504bfea58fea66bbf65738446117d668.tar.bz2
rsyslog-fc861c0a504bfea58fea66bbf65738446117d668.zip
Merge branch 'master' into nextmaster
Conflicts: ChangeLog
-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 9a5c5edc..5915f0bf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,6 +4,12 @@ Version 7.5.0 [devel] 2013-0?-??
connections
Thanks to Axel Rau for the patch.
---------------------------------------------------------------------------
+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) */