@@ -, +, @@ --- grammar/rainerscript.c | 8 ++++++++ 1 file changed, 8 insertions(+) --- a/grammar/rainerscript.c +++ a/grammar/rainerscript.c @@ -1276,6 +1276,13 @@ str2num(es_str_t *s, int *bSuccess) int64_t num = 0; const uchar *const c = es_getBufAddr(s); + if(s->lenStr == 0) { + DBGPRINTF("rainerscript: str2num: strlen == 0; invalid input (no string)\n"); + if(bSuccess != NULL) { + *bSuccess = 1; + } + goto done; + } if(c[0] == '-') { neg = -1; i = -1; @@ -1290,6 +1297,7 @@ str2num(es_str_t *s, int *bSuccess) num *= neg; if(bSuccess != NULL) *bSuccess = (i == s->lenStr) ? 1 : 0; +done: return num; }