diff options
author | varmojfekoj <theinric@redhat.com> | 2009-03-16 15:40:03 +0100 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2009-03-16 15:40:03 +0100 |
commit | 16b960939ee44155a9ac6ac6999b6ab71f237034 (patch) | |
tree | b38069bbadd5335dc56eb2c0b441327746688b89 | |
parent | e23e2e391ca1b0a5987b95f1a9f1ec8910faae8a (diff) | |
download | rsyslog-16b960939ee44155a9ac6ac6999b6ab71f237034.tar.gz rsyslog-16b960939ee44155a9ac6ac6999b6ab71f237034.tar.xz rsyslog-16b960939ee44155a9ac6ac6999b6ab71f237034.zip |
fixed bugs in RainerScript
- when converting a number and a string to a common type, both were
actually converted to the other variable's type.
- the value of rsCStrConvertToNumber() was miscalculated.
Signed-off-by: Rainer Gerhards <rgerhards@adiscon.com>
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | runtime/stringbuf.c | 2 | ||||
-rw-r--r-- | runtime/var.c | 4 |
3 files changed, 8 insertions, 3 deletions
@@ -1,5 +1,10 @@ --------------------------------------------------------------------------- Version 3.20.5 [v3-stable] (rgerhards), 2009-0?-?? +- fixed bugs in RainerScript: + o when converting a number and a string to a common type, both were + actually converted to the other variable's type. + o the value of rsCStrConvertToNumber() was miscalculated. + Thanks to varmojfekoj for the patch - fixed a bug in configure.ac which resulted in problems with environment detection - thanks to Michael Biebl for the patch - fixed a potential segfault problem in gssapi code diff --git a/runtime/stringbuf.c b/runtime/stringbuf.c index 93d1e1ef..63b42348 100644 --- a/runtime/stringbuf.c +++ b/runtime/stringbuf.c @@ -820,7 +820,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 7e51fc6d..f964874b 100644 --- a/runtime/var.c +++ b/runtime/var.c @@ -327,7 +327,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 */ @@ -345,7 +345,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 */ |