Re: glibc qsort() vulnerability
Mats Kindahl <mats@timescale.com>
From: Mats Kindahl <mats@timescale.com>
To: Nathan Bossart <nathandbossart@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Andres Freund <andres@anarazel.de>, Thomas Munro <thomas.munro@gmail.com>, Heikki Linnakangas <hlinnaka@iki.fi>, pgsql-hackers@lists.postgresql.org
Date: 2024-02-12T17:09:06Z
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
Attachments
- 0002-Use-integer-comparison-functions.v2.patch (text/x-patch) patch v2-0002
- 0001-Add-integer-comparison-functions.v2.patch (text/x-patch) patch v2-0001
On Mon, Feb 12, 2024 at 4:57 PM Nathan Bossart <nathandbossart@gmail.com> wrote: > On Sun, Feb 11, 2024 at 03:44:42PM +0100, Mats Kindahl wrote: > > On Sat, Feb 10, 2024 at 9:53 PM Nathan Bossart <nathandbossart@gmail.com > > > > wrote: > >> and I think we should expand on some of the commentary in int.h. > >> For example, the comment at the top of int.h seems very tailored to the > >> existing functions and should probably be adjusted. > > > > > > I rewrote the beginning to the following, does that look good? > > > > * int.h > > * Routines to perform signed and unsigned integer arithmetics, > including > > * comparisons, in an overflow-safe way. > > > > > > > >> And the "comparison > >> routines for integers" comment might benefit from some additional > details > >> about the purpose and guarantees of the new functions. > >> > > > > I expanded that into the following. WDYT? > > > > > /*------------------------------------------------------------------------ > > * Comparison routines for integers. > > * > > * These routines are used to implement comparison functions for, e.g., > > * qsort(). They are designed to be efficient and not risk overflows in > > * internal computations that could cause strange results, such as > INT_MIN > > > * INT_MAX if you just return "lhs - rhs". > > > *------------------------------------------------------------------------ > > LGTM. I might editorialize a bit before committing, but I think your > proposed wording illustrates the thrust of the change. > Thanks Nathan, Here are the two fixed patches. Best wishes, Mats Kindahl > > -- > Nathan Bossart > Amazon Web Services: https://aws.amazon.com >