In open_memstream() the code does a bzero() of the new memory even though
recallocarray() used which does this already.

In open_wmemstream() the code does the same but is still using
reallocarray(). So adjust that code to be like open_memstream().

-- 
:wq Claudio

Index: open_memstream.c
===================================================================
RCS file: /cvs/src/lib/libc/stdio/open_memstream.c,v
retrieving revision 1.8
diff -u -p -r1.8 open_memstream.c
--- open_memstream.c    2 May 2019 08:30:10 -0000       1.8
+++ open_memstream.c    8 Jun 2023 12:21:50 -0000
@@ -53,7 +53,6 @@ memstream_write(void *v, const char *b, 
                p = recallocarray(st->string, st->size, sz, 1);
                if (!p)
                        return (-1);
-               bzero(p + st->size, sz - st->size);
                *st->pbuf = st->string = p;
                st->size = sz;
        }
Index: open_wmemstream.c
===================================================================
RCS file: /cvs/src/lib/libc/stdio/open_wmemstream.c,v
retrieving revision 1.8
diff -u -p -r1.8 open_wmemstream.c
--- open_wmemstream.c   12 Sep 2015 16:23:14 -0000      1.8
+++ open_wmemstream.c   15 Jun 2023 14:54:42 -0000
@@ -52,10 +52,9 @@ wmemstream_write(void *v, const char *b,
 
                if (sz < end + 1)
                        sz = end + 1;
-               p = reallocarray(st->string, sz, sizeof(wchar_t));
+               p = recallocarray(st->string, st->size, sz, sizeof(wchar_t));
                if (!p)
                        return (-1);
-               bzero(p + st->size, (sz - st->size) * sizeof(wchar_t));
                *st->pbuf = st->string = p;
                st->size = sz;
        }

Reply via email to