diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2013-05-08 09:40:20 +0200 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2013-05-08 09:40:20 +0200 |
commit | 0817fc95a810df497c52200c772fac743ca84dde (patch) | |
tree | c1e01622f96e4a09d9e87f7d36503f11f494a389 | |
parent | 40254dcc8cf3d9ab17f30f417a95709cbf9204bf (diff) | |
download | rsyslog-0817fc95a810df497c52200c772fac743ca84dde.tar.gz rsyslog-0817fc95a810df497c52200c772fac743ca84dde.tar.bz2 rsyslog-0817fc95a810df497c52200c772fac743ca84dde.zip |
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.
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | runtime/queue.c | 6 | ||||
-rw-r--r-- | runtime/rsyslog.h | 1 |
3 files changed, 13 insertions, 0 deletions
@@ -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) */ |