remove another invalid skip of locking in ungetwc
authorRich Felker <dalias@aerifal.cx>
Sat, 6 Jun 2015 18:20:30 +0000 (18:20 +0000)
committerRich Felker <dalias@aerifal.cx>
Sat, 6 Jun 2015 18:20:30 +0000 (18:20 +0000)
src/stdio/ungetwc.c

index 0a4cd7a..394f92a 100644 (file)
@@ -9,14 +9,12 @@ wint_t ungetwc(wint_t c, FILE *f)
        unsigned char mbc[MB_LEN_MAX];
        int l=1;
 
-       if (c == WEOF) return c;
-
        FLOCK(f);
 
        f->mode |= f->mode+1;
 
        if (!f->rpos) __toread(f);
-       if (!f->rpos || f->rpos < f->buf - UNGET + l ||
+       if (!f->rpos || f->rpos < f->buf - UNGET + l || c == WEOF ||
            (!isascii(c) && (l = wctomb((void *)mbc, c)) < 0)) {
                FUNLOCK(f);
                return WEOF;