Re: glibc qsort() vulnerability
Nathan Bossart <nathandbossart@gmail.com>
From: Nathan Bossart <nathandbossart@gmail.com>
To: "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Cc: Andres Freund <andres@anarazel.de>, Heikki Linnakangas <hlinnaka@iki.fi>, Mats Kindahl <mats@timescale.com>, Tom Lane <tgl@sss.pgh.pa.us>, pgsql-hackers@lists.postgresql.org
Date: 2024-02-09T16:32:45Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Use new overflow-safe integer comparison functions.
- 3b42bdb47169 17.0 landed
-
Introduce overflow-safe integer comparison functions.
- 6b80394781c8 17.0 landed
-
Replace calls to pg_qsort() with the qsort() macro.
- 5497daf3aa2a 17.0 landed
-
Switch over to using our own qsort() all the time, as has been proposed
- 6edd2b4a91bd 8.2.0 cited
On Fri, Feb 09, 2024 at 01:19:49PM +0500, Andrey M. Borodin wrote: > If we care about branch prediction in comparison function, maybe we could > produce sorting that inlines comparator, thus eliminating function call > to comparator? We convert comparison logic to int, to extract comparison > back then. > > I bet “call" is more expensive than “if". It might make sense to have a couple of built-in qsort implementations for pointers to integers, pointers to unsigned integers, etc. However, a lot of current use-cases require inspecting specific fields of structs, so (assuming I understand your proposal correctly), we'd end up with many qsort implementations. If that can be made simple and elegant and demonstrates substantial improvements, then it might be worth considering, but I'm somewhat skeptical that the current uses are performance-sensitive enough to be worth the effort. -- Nathan Bossart Amazon Web Services: https://aws.amazon.com