From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.3 required=5.0 tests=MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 27619 invoked from network); 13 Mar 2022 00:40:43 -0000 Received: from mother.openwall.net (195.42.179.200) by inbox.vuxu.org with ESMTPUTF8; 13 Mar 2022 00:40:43 -0000 Received: (qmail 30322 invoked by uid 550); 13 Mar 2022 00:40:41 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Reply-To: musl@lists.openwall.com Received: (qmail 30289 invoked from network); 13 Mar 2022 00:40:40 -0000 Date: Sat, 12 Mar 2022 19:40:28 -0500 From: Rich Felker To: Isaiah Poston Cc: musl@lists.openwall.com Message-ID: <20220313004028.GY7074@brightrain.aerifal.cx> References: <20220313002155.19029-1-isaiah@ilposton.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20220313002155.19029-1-isaiah@ilposton.com> User-Agent: Mutt/1.5.21 (2010-09-15) Subject: Re: [musl] [PATCH] use libc-internal malloc for duplocale On Sat, Mar 12, 2022 at 06:21:56PM -0600, Isaiah Poston wrote: > newlocale and freelocale use __libc_malloc and __libc_free, but > duplocale uses malloc. This prevents invalid reads when locales created > by duplocale use a different malloc allocator than the internal one > (e.g. when using an LD_PRELOAD malloc tool such as valgrind). > > This bug was introduced by commit > 1e4204d522670a1d8b8ab85f1cfefa960547e8af. > --- > src/locale/duplocale.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/src/locale/duplocale.c b/src/locale/duplocale.c > index 030b64cb..5ce33ae6 100644 > --- a/src/locale/duplocale.c > +++ b/src/locale/duplocale.c > @@ -3,6 +3,11 @@ > #include "locale_impl.h" > #include "libc.h" > > +#define malloc __libc_malloc > +#define calloc undef > +#define realloc undef > +#define free undef > + > locale_t __duplocale(locale_t old) > { > locale_t new = malloc(sizeof *new); > -- > 2.35.1 Thanks! Applying.