Re: glibc qsort() vulnerability
От | Mats Kindahl |
---|---|
Тема | Re: glibc qsort() vulnerability |
Дата | |
Msg-id | CA+14425TqyUZ3-O7zYsW6u85yY5diCz-p_TPQ2bZovn-N-fQ9A@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: glibc qsort() vulnerability (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: glibc qsort() vulnerability
|
Список | pgsql-hackers |
On Tue, Feb 6, 2024 at 9:56 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
Nathan Bossart <nathandbossart@gmail.com> writes:
> Even if the glibc issue doesn't apply to Postgres, I'm tempted to suggest
> that we make it project policy that comparison functions must be
> transitive. There might be no real issues today, but if we write all
> comparison functions the way Mats is suggesting, it should be easier to
> reason about overflow risks.
A comparison routine that is not is probably broken, agreed.
I didn't look through the details of the patch --- I was more
curious whether we had a version of the qsort bug, because
if we do, we should fix that too.
The patch basically removes the risk of overflow in three routines and just returns -1, 0, or 1, and adds a comment in one.
The routines modified do a subtraction of int:s and return that, which can cause an overflow. This method is used for some int16 as well but since standard conversions in C will perform the arithmetics in "int" precision, this cannot overflow, so added a comment there. It might still be a good idea to follow the same pattern for the int16 routines, but since there is no bug there, I did not add them to the patch.
Best wishes,
Mats Kindahl
Mats Kindahl
regards, tom lane
В списке pgsql-hackers по дате отправления: