X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fstdio%2Fvfscanf.c;h=61b0edb159fbbec9e70c02f5d13202316a100631;hb=970ef6a1240adfd685c27bf3407dfd06606a17e8;hp=8be0d91c6689a7fe697b3a03a0444b863aef479d;hpb=e0d9f780d171326a12bf9daf2af1e2f0c51c89f6;p=musl diff --git a/src/stdio/vfscanf.c b/src/stdio/vfscanf.c index 8be0d91c..61b0edb1 100644 --- a/src/stdio/vfscanf.c +++ b/src/stdio/vfscanf.c @@ -103,6 +103,7 @@ int vfscanf(FILE *f, const char *fmt, va_list ap) } if (*p != '%' || p[1] == '%') { p += *p=='%'; + shlim(f, 0); c = shgetc(f); if (c!=*p) { shunget(f); @@ -291,7 +292,7 @@ int vfscanf(FILE *f, const char *fmt, va_list ap) case 'e': case 'E': case 'f': case 'F': case 'g': case 'G': - y = __floatscan(f, -1, size, 0); + y = __floatscan(f, size, 0); if (!shcnt(f)) goto match_fail; if (dest) switch (size) { case SIZE_def: @@ -312,6 +313,7 @@ int vfscanf(FILE *f, const char *fmt, va_list ap) if (readwc(c, &wcs, &st) < 0) goto input_fail; } + shunget(f); if (!mbsinit(&st)) goto input_fail; if (dest) *wcs++ = 0; break;