diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-12-30 11:15:04 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-12-30 11:15:04 -0800 |
commit | a25763be9d712b0bd8e93e935c8ec1085a5ac269 (patch) | |
tree | 0ff1d987eaeae94be40ffd28e93ad944344bbb5f | |
parent | d4562d82ed21a1c4fab4b4ef9d98d24a097dada4 (diff) |
parse empty i64 strings properly
-rw-r--r-- | src/library.js | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/library.js b/src/library.js index 30ad1128..f134e0e6 100644 --- a/src/library.js +++ b/src/library.js @@ -3841,7 +3841,6 @@ LibraryManager.library = { _parseInt64__deps: ['isspace', '__setErrNo', '$ERRNO_CODES', function() { Types.preciseI64MathUsed = 1 }], _parseInt64: function(str, endptr, base, min, max, unsign) { var start = str; - // Skip space. while (_isspace({{{ makeGetValue('str', 0, 'i8') }}})) str++; @@ -3880,6 +3879,10 @@ LibraryManager.library = { str++; } } + if (!ok) { + ___setErrNo(ERRNO_CODES.EINVAL); + return 0; + } try { i64Math.fromString(Pointer_stringify(start, str - start), finalBase, min, max, unsign); @@ -3892,8 +3895,6 @@ LibraryManager.library = { {{{ makeSetValue('endptr', 0, 'str', '*') }}} } - // Unsign if needed. XXX - ret = i64Math.result.slice(0); return ret; |