aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/library.js2
-rw-r--r--tests/core/test_sscanf.in1
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);