diff options
-rw-r--r-- | src/library.js | 2 | ||||
-rw-r--r-- | tests/core/test_sscanf.in | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/src/library.js b/src/library.js index 901c9474..26ce8457 100644 --- a/src/library.js +++ b/src/library.js @@ -1641,8 +1641,8 @@ LibraryManager.library = { for (var i = 0; i < maxx; i++) { next = get(); {{{ makeSetValue('argPtr++', 0, 'next', 'i8') }}}; + if (next === 0) return i > 0 ? fields : fields-1; // we failed to read the full length of this field } - if (next === 0) return fields-1; // we failed to read this field formatIndex += nextC - formatIndex + 1; continue; } diff --git a/tests/core/test_sscanf.in b/tests/core/test_sscanf.in index d5289fe5..55a310c5 100644 --- a/tests/core/test_sscanf.in +++ b/tests/core/test_sscanf.in @@ -64,6 +64,7 @@ int main() { } char buf1[100], buf2[100], buf3[100], buf4[100]; + memset(buf4, 0, 100); int numItems = sscanf("level=4:ref=3", "%255[^:=]=%255[^:]:%255[^=]=%255c", buf1, buf2, buf3, buf4); |