fix over-read in %ls with non-wide scanf
authorRich Felker <dalias@aerifal.cx>
Wed, 18 Apr 2012 02:41:38 +0000 (22:41 -0400)
committerRich Felker <dalias@aerifal.cx>
Wed, 18 Apr 2012 02:41:38 +0000 (22:41 -0400)
src/stdio/vfscanf.c

index 8be0d91..73294cd 100644 (file)
@@ -312,6 +312,7 @@ int vfscanf(FILE *f, const char *fmt, va_list ap)
                                if (readwc(c, &wcs, &st) < 0)
                                        goto input_fail;
                        }
                                if (readwc(c, &wcs, &st) < 0)
                                        goto input_fail;
                        }
+                       shunget(f);
                        if (!mbsinit(&st)) goto input_fail;
                        if (dest) *wcs++ = 0;
                        break;
                        if (!mbsinit(&st)) goto input_fail;
                        if (dest) *wcs++ = 0;
                        break;