Index: src/libs/zbxcommon/misc.c =================================================================== --- src/libs/zbxcommon/misc.c (revision 34458) +++ src/libs/zbxcommon/misc.c (working copy) @@ -1322,6 +1322,7 @@ { size_t i, len; char dot = 0; + char exponent = 0; for (i = 0; ' ' == str[i] && '\0' != str[i]; i++) /* trim left spaces */ ; @@ -1335,12 +1336,27 @@ if (0 != isdigit(str[i])) continue; - if ('.' == str[i] && 0 == dot) + if ('.' == str[i] && 0 == dot && exponent == 0) { dot = 1; continue; } + /* Check for exponent */ + if (exponent == 0 && ('e' == str[i] || 'E' == str[i])) + { + i++; + len++; + exponent = 1; + /* Exponent must be followed by +/- or a digit */ + if ('+' == str[i] || '-' == str[i] || 0 != isdigit(str[i])) + { + continue; + } + + return FAIL; + } + if (' ' == str[i]) /* check right spaces */ { for (; ' ' == str[i] && '\0' != str[i]; i++) /* trim right spaces */