From: | Mats Kindahl <mats(at)timescale(dot)com> |
---|---|
To: | Nathan Bossart <nathandbossart(at)gmail(dot)com> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Andres Freund <andres(at)anarazel(dot)de>, Thomas Munro <thomas(dot)munro(at)gmail(dot)com>, Heikki Linnakangas <hlinnaka(at)iki(dot)fi>, pgsql-hackers(at)lists(dot)postgresql(dot)org |
Subject: | Re: glibc qsort() vulnerability |
Date: | 2024-02-11 14:44:42 |
Message-ID: | CA+14427j_ExhaicH96i3k8OnZaHYkYQtPm-Q66BzY96W3qBJ-A@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Sat, Feb 10, 2024 at 9:53 PM Nathan Bossart <nathandbossart(at)gmail(dot)com>
wrote:
> On Sat, Feb 10, 2024 at 08:59:06AM +0100, Mats Kindahl wrote:
> > Split the code into two patches: one that just adds the functions
> > (including the new pg_cmp_size()) to common/int.h and one that starts
> using
> > them. I picked the name "pg_cmp_size" rather than "pg_cmp_size_t" since
> > "_t" is usually used as a suffix for types.
> >
> > I added a comment to the (a > b) - (a < b) return and have also added
> casts
> > to (int32) for the int16 and uint16 functions (we need a signed int for
> > uin16 since we need to be able to get a negative number).
> >
> > Changed the type of two instances that had an implicit cast from size_t
> to
> > int and used the new pg_,cmp_size() function.
> >
> > Also fixed the missed replacements in the "contrib" directory.
>
> Thanks for the new patches. I think the comparison in resowner.c is
> backwards,
Thanks for catching that.
> 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".
*------------------------------------------------------------------------
Best wishes,
Mats Kindahl
> --
> Nathan Bossart
> Amazon Web Services: https://aws.amazon.com
>
From | Date | Subject | |
---|---|---|---|
Next Message | Andrew Dunstan | 2024-02-11 15:01:51 | Re: Feature request support MS Entra ID Authentication from On-premises PostreSQL server |
Previous Message | Robert Haas | 2024-02-11 13:58:20 | Re: Possibility to disable `ALTER SYSTEM` |