allow fmemopen with zero size
authorRich Felker <dalias@aerifal.cx>
Tue, 25 Jun 2019 21:47:12 +0000 (17:47 -0400)
committerRich Felker <dalias@aerifal.cx>
Tue, 25 Jun 2019 21:47:12 +0000 (17:47 -0400)
previously, POSIX erroneously required this to fail with EINVAL
despite the traditional glibc implementation, on which the POSIX
interface was based, allowing it. the resolution of Austin Group issue
818 removes the requirement to fail.

src/stdio/fmemopen.c

index 82413b2d8d8386ab17b46fc49c68820551dd5deb..5685092e36018247bb7308bbce5db18416b8b3f9 100644 (file)
@@ -83,7 +83,7 @@ FILE *fmemopen(void *restrict buf, size_t size, const char *restrict mode)
        struct mem_FILE *f;
        int plus = !!strchr(mode, '+');
        
-       if (!size || !strchr("rwa", *mode)) {
+       if (!strchr("rwa", *mode)) {
                errno = EINVAL;
                return 0;
        }