diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2009-10-08 16:36:17 +0200 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2009-10-08 16:36:17 +0200 |
commit | ec56b763b83677d1e9cd02a7ae610caf62e902bb (patch) | |
tree | be7717d7db2fc5bf49b29fa1eb930d1ac51ebfa3 /template.c | |
parent | d85efd07e006d4d9031019aa9ac9757d303a8b36 (diff) | |
download | rsyslog-ec56b763b83677d1e9cd02a7ae610caf62e902bb.tar.gz rsyslog-ec56b763b83677d1e9cd02a7ae610caf62e902bb.tar.xz rsyslog-ec56b763b83677d1e9cd02a7ae610caf62e902bb.zip |
bugfix in debug system and more instrumentation to find an issue
bugfix: debug string larger than 1K were improperly displayed. Max size
is now 32K, and if a string is even longer it is meaningful truncated.
Diffstat (limited to 'template.c')
-rw-r--r-- | template.c | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -86,6 +86,7 @@ rsRetVal tplToString(struct template *pTpl, msg_t *pMsg, uchar **ppBuf, size_t * unsigned short bMustBeFreed; uchar *pVal; size_t iLenVal; +int propid = -1; assert(pTpl != NULL); assert(pMsg != NULL); @@ -101,10 +102,12 @@ rsRetVal tplToString(struct template *pTpl, msg_t *pMsg, uchar **ppBuf, size_t * iBuf = 0; while(pTpe != NULL) { if(pTpe->eEntryType == CONSTANT) { +propid = -1; pVal = (uchar*) pTpe->data.constant.pConstant; iLenVal = pTpe->data.constant.iLenConstant; bMustBeFreed = 0; } else if(pTpe->eEntryType == FIELD) { +propid = pTpe->data.field.propid; pVal = (uchar*) MsgGetProp(pMsg, pTpe, pTpe->data.field.propid, &iLenVal, &bMustBeFreed); /* we now need to check if we should use SQL option. In this case, * we must go over the generated string and escape '\'' characters. @@ -118,7 +121,8 @@ rsRetVal tplToString(struct template *pTpl, msg_t *pMsg, uchar **ppBuf, size_t * doSQLEscape(&pVal, &iLenVal, &bMustBeFreed, 0); } /* got source, now copy over */ - if(iBuf + iLenVal + 1 >= *pLenBuf) /* we reserve one char for the final \0! */ +dbgprintf("copying prop id %3d (entry type %d) of length %d ('%s')\n", propid, pTpe->eEntryType, (int) iLenVal, pVal); + if(iBuf + iLenVal >= *pLenBuf) /* we reserve one char for the final \0! */ CHKiRet(ExtendBuf(ppBuf, pLenBuf, iBuf + iLenVal + 1)); if(iLenVal > 0) { /* may be zero depending on property */ |