fix uninitialized var in vfwprintf printing 0-prec string
[musl] / src / stdio / vfscanf.c
index 8be0d91..64fa975 100644 (file)
@@ -291,7 +291,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 +312,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;