[PATCH] qsort: Fix a typo causing unnecessary malloc/free
Xi Ruoyao
xry111@xry111.site
Mon Jan 22 19:57:33 GMT 2024
On Tue, 2024-01-23 at 03:54 +0800, Xi Ruoyao wrote:
> On Mon, 2024-01-22 at 11:46 -0800, H.J. Lu wrote:
> > On Mon, Jan 22, 2024 at 11:32 AM Xi Ruoyao <xry111@xry111.site> wrote:
> > >
> > > In qsort_r we allocate a buffer sized QSORT_STACK_SIZE (1024) on stack
> > > and we intend to use it if all elements can fit into it. But there is a
> > > typo:
> > >
> > > if (total_size < sizeof buf)
Hmm, and it seems this should be "<=" instead of "<". I'm preparing a
V2 with the operator changed too, and the BZ number in commit message...
> > > buf = tmp;
> > > else
> > > /* allocate a buffer on heap and use it ... */
> > >
> > > Here "buf" is a pointer, thus sizeof buf is just 4 or 8, instead of
> > > 1024.
> >
> > This sounds like a real bug. A glibc bug report is needed to track it.
>
> https://sourceware.org/bugzilla/show_bug.cgi?id=31276
>
--
Xi Ruoyao <xry111@xry111.site>
School of Aerospace Science and Technology, Xidian University
More information about the Libc-alpha
mailing list