fdopen should set errno when it fails due to invalid mode string
authorRich Felker <dalias@aerifal.cx>
Mon, 18 Jun 2012 00:34:04 +0000 (20:34 -0400)
committerRich Felker <dalias@aerifal.cx>
Mon, 18 Jun 2012 00:34:04 +0000 (20:34 -0400)
src/stdio/__fdopen.c

index 07f966a..8bd51c6 100644 (file)
@@ -7,7 +7,10 @@ FILE *__fdopen(int fd, const char *mode)
        int plus = !!strchr(mode, '+');
 
        /* Check for valid initial mode character */
-       if (!strchr("rwa", *mode)) return 0;
+       if (!strchr("rwa", *mode)) {
+               errno = EINVAL;
+               return 0;
+       }
 
        /* Allocate FILE+buffer or fail */
        if (!(f=malloc(sizeof *f + UNGET + BUFSIZ))) return 0;