summaryrefslogtreecommitdiffstats
path: root/runtime
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2009-04-07 15:24:59 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2009-04-07 15:24:59 +0200
commita6c743e5ec5d213d3aa6404553fe65d59f065799 (patch)
tree8ec5ec4d77dea8a12280b965c2c5ba7f5051158f /runtime
parent7db9f96fe9ecb9f8e05d45cc888aa488d8aed85f (diff)
parent845c6f59b91e9988f856556cbb0e88e275e8e591 (diff)
downloadrsyslog-a6c743e5ec5d213d3aa6404553fe65d59f065799.tar.gz
rsyslog-a6c743e5ec5d213d3aa6404553fe65d59f065799.tar.xz
rsyslog-a6c743e5ec5d213d3aa6404553fe65d59f065799.zip
Merge branch 'master' into nextmaster
Conflicts: ChangeLog
Diffstat (limited to 'runtime')
-rw-r--r--runtime/stringbuf.c2
-rw-r--r--runtime/var.c4
-rw-r--r--runtime/wtp.c8
3 files changed, 11 insertions, 3 deletions
diff --git a/runtime/stringbuf.c b/runtime/stringbuf.c
index 35ec44c6..07256fab 100644
--- a/runtime/stringbuf.c
+++ b/runtime/stringbuf.c
@@ -850,7 +850,7 @@ rsCStrConvertToNumber(cstr_t *pStr, number_t *pNumber)
/* TODO: octal? hex? */
n = 0;
while(i < pStr->iStrLen && isdigit(pStr->pBuf[i])) {
- n = n * 10 + pStr->pBuf[i] * 10;
+ n = n * 10 + pStr->pBuf[i] - '0';
++i;
}
diff --git a/runtime/var.c b/runtime/var.c
index 559bc56c..ef7cc8e6 100644
--- a/runtime/var.c
+++ b/runtime/var.c
@@ -366,7 +366,7 @@ ConvForOperation(var_t *pThis, var_t *pOther)
case VARTYPE_NUMBER:
/* check if we can convert pThis to a number, if so use number format. */
iRet = ConvToNumber(pThis);
- if(iRet != RS_RET_NOT_A_NUMBER) {
+ if(iRet == RS_RET_NOT_A_NUMBER) {
CHKiRet(ConvToString(pOther));
} else {
FINALIZE; /* OK or error */
@@ -384,7 +384,7 @@ ConvForOperation(var_t *pThis, var_t *pOther)
break;
case VARTYPE_STR:
iRet = ConvToNumber(pOther);
- if(iRet != RS_RET_NOT_A_NUMBER) {
+ if(iRet == RS_RET_NOT_A_NUMBER) {
CHKiRet(ConvToString(pThis));
} else {
FINALIZE; /* OK or error */
diff --git a/runtime/wtp.c b/runtime/wtp.c
index 9f54a9ab..04eb974f 100644
--- a/runtime/wtp.c
+++ b/runtime/wtp.c
@@ -206,6 +206,14 @@ wtpProcessThrdChanges(wtp_t *pThis)
FINALIZE;
}
+ /* Note: there is a left-over potential race condition below:
+ * pThis->bThrdStateChanged may be re-set by another thread while
+ * we work on it and thus the loop may terminate too early. However,
+ * there are no really bad effects from that so I perfer - for this
+ * version - to live with the problem as is. Not a good idea to
+ * introduce that large change into the stable branch without very
+ * good reason. -- rgerhards, 2009-04-02
+ */
do {
/* reset the change marker */
pThis->bThrdStateChanged = 0;