diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2012-11-14 17:21:50 +0100 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2012-11-14 17:21:50 +0100 |
commit | c0f5dd3fbf877799ac8fec4d00b2f2c69014b413 (patch) | |
tree | 93ad366c70f9013bb7298dd2cceedac2c6a31925 /runtime/stringbuf.c | |
parent | 25a33416e9597087e16483859ecbdd6cdac2df64 (diff) | |
download | rsyslog-c0f5dd3fbf877799ac8fec4d00b2f2c69014b413.tar.gz rsyslog-c0f5dd3fbf877799ac8fec4d00b2f2c69014b413.tar.bz2 rsyslog-c0f5dd3fbf877799ac8fec4d00b2f2c69014b413.zip |
bugfix: potential segfault at startup with property-based filter
If the property name was followed by a space before the comma, rsyslogd
aborted on startup. Note that no segfault could happen if the initial
startup went well (this was a problem with the config parser).
closes: http://bugzilla.adiscon.com/show_bug.cgi?id=381
Diffstat (limited to 'runtime/stringbuf.c')
-rw-r--r-- | runtime/stringbuf.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/runtime/stringbuf.c b/runtime/stringbuf.c index e7fd72c2..5bca009d 100644 --- a/runtime/stringbuf.c +++ b/runtime/stringbuf.c @@ -482,6 +482,8 @@ rsRetVal cstrTrimTrailingWhiteSpace(cstr_t *pThis) register uchar *pC; rsCHECKVALIDOBJECT(pThis, OIDrsCStr); + if(pThis->iStrLen == 0) + goto done; /* empty string -> nothing to trim ;) */ i = pThis->iStrLen; pC = pThis->pBuf + i - 1; while(i > 0 && isspace((int)*pC)) { @@ -492,7 +494,7 @@ rsRetVal cstrTrimTrailingWhiteSpace(cstr_t *pThis) pThis->iStrLen = i; pThis->pBuf[pThis->iStrLen] = '0'; /* we always have this space */ - return RS_RET_OK; +done: return RS_RET_OK; } /* compare two string objects - works like strcmp(), but operates |