diff options
Diffstat (limited to 'src/stdio/vfscanf.c')
-rw-r--r-- | src/stdio/vfscanf.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/stdio/vfscanf.c b/src/stdio/vfscanf.c index 9e030fc4..b78a374d 100644 --- a/src/stdio/vfscanf.c +++ b/src/stdio/vfscanf.c @@ -57,7 +57,7 @@ int vfscanf(FILE *restrict f, const char *restrict fmt, va_list ap) { int width; int size; - int alloc; + int alloc = 0; int base; const unsigned char *p; int c, t; @@ -76,6 +76,9 @@ int vfscanf(FILE *restrict f, const char *restrict fmt, va_list ap) FLOCK(f); + if (!f->rpos) __toread(f); + if (!f->rpos) goto input_fail; + for (p=(const unsigned char *)fmt; *p; p++) { alloc = 0; |