aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2014-02-03 12:00:30 -0500
committerAlon Zakai <alonzakai@gmail.com>2014-02-03 12:01:24 -0500
commit9a79e796de82c0f91288bdd57c9953e4ff8eb06f (patch)
tree96dc76224d4fc86c6dfbc9366b63edcd80902ef8
parent3700ece5ebe8d136c3f70c0f4c49745a6055470c (diff)
sscanf fix and test fix
-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);