The fix is to look at mode, not oflags since "w+" will set O_RDWR, not O_WRONLY.
- todd Index: lib/libc/stdio/fmemopen.c =================================================================== RCS file: /cvs/src/lib/libc/stdio/fmemopen.c,v retrieving revision 1.3 diff -u -p -u -r1.3 fmemopen.c --- lib/libc/stdio/fmemopen.c 31 Aug 2015 02:53:57 -0000 1.3 +++ lib/libc/stdio/fmemopen.c 14 Aug 2020 01:18:39 -0000 @@ -144,7 +144,7 @@ fmemopen(void *buf, size_t size, const c } st->pos = 0; - st->len = (oflags & O_WRONLY) ? 0 : size; + st->len = *mode == 'w' ? 0 : size; st->size = size; st->update = oflags & O_RDWR;