Re: [PATCH] perf ftrace: Fix undefined behavior in cmp_profile_data()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Dec 9, 2024 at 12:26 PM Arnaldo Carvalho de Melo
<acme@xxxxxxxxxx> wrote:
>
> On Mon, Dec 09, 2024 at 09:02:24AM -0800, Namhyung Kim wrote:
> > Hello,
> >
> > On Mon, Dec 9, 2024 at 5:42 AM Kuan-Wei Chiu <visitorckw@xxxxxxxxx> wrote:
> > >
> > > The comparison function cmp_profile_data() violates the C standard's
> > > requirements for qsort() comparison functions, which mandate symmetry
> > > and transitivity:
> > >
> > > * Symmetry: If x < y, then y > x.
> > > * Transitivity: If x < y and y < z, then x < z.
> > >
> > > When v1 and v2 are equal, the function incorrectly returns 1, breaking
> > > symmetry and transitivity. This causes undefined behavior, which can
> > > lead to memory corruption in certain versions of glibc [1].
> > >
> > > Fix the issue by returning 0 when v1 and v2 are equal, ensuring
> > > compliance with the C standard and preventing undefined behavior.
> > >
> > > Link: https://www.qualys.com/2024/01/30/qsort.txt [1]
> > > Fixes: 0f223813edd0 ("perf ftrace: Add 'profile' command")
> > > Fixes: 74ae366c37b7 ("perf ftrace profile: Add -s/--sort option")
> > > Cc: stable@xxxxxxxxxxxxxxx
> > > Signed-off-by: Kuan-Wei Chiu <visitorckw@xxxxxxxxx>
> >
> > Reviewed-by: Namhyung Kim <namhyung@xxxxxxxxxx>
>
> I'm assuming you'll pick this for perf-tools, ok?
>
> Reviewed-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>

Yep, sure.

Thanks,
Namhyung





[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux