Re: Possible NULL dereferencing null pointer (src/backend/executor/nodeIncrementalSort.c)

From: Ranier Vilela <ranier(dot)vf(at)gmail(dot)com>
To: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Tomas Vondra <tomas(dot)vondra(at)2ndquadrant(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Possible NULL dereferencing null pointer (src/backend/executor/nodeIncrementalSort.c)
Date: 2020-10-11 10:39:07
Message-ID: CAEudQArQaWUrRXgz7yvMb9QwQz5B7-x_ZDtQYF4VFADvq+SnsA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Em sáb., 10 de out. de 2020 às 00:11, David G. Johnston <
david(dot)g(dot)johnston(at)gmail(dot)com> escreveu:

> On Fri, Oct 9, 2020 at 6:41 PM Ranier Vilela <ranier(dot)vf(at)gmail(dot)com> wrote:
>
>> The problem is not only in nodeIncrementalSort.c, but in several others
>> too, where people are using TupIsNull with ExecCopySlot.
>> I would call this a design flaw.
>> If (TupIsNull)
>> ExecCopySlot
>>
>> The callers, think they are using TupIsNotNullAndEmpty.
>> If (TupIsNotNullAndEmpty)
>> ExecCopySlot
>>
>
> IMO both names are problematic, too data value centric, not semantic.
> TupIsValid for the name and negating the existing tests would help to at
> least clear that part up. Then, things operating on invalid tuples would
> be expected to know about both representations. In the case of
> ExecCopySlot there is nothing it can do with a null representation of an
> invalid tuple so it would have to fail if presented one. An assertion
> seems sufficient.
>
IHMO, assertion it is not the solution.

Steven suggested looking for some NULL pointer font above the calls.
I say that it is not necessary, there is no NULL pointer.
Whoever guarantees this is the combination, which for me is an assertion.

If (TupIsNull)
ExecCopySlot

It works as a subject, but in release mode.
It is the equivalent of:

If (TupIsNull)
Abort

The only problem for me is that we are running this assertion on the
clients' machines.

regards,
Ranier Vilela

>

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2020-10-11 17:12:40 Re: powerpc pg_atomic_compare_exchange_u32_impl: error: comparison of integer expressions of different signedness (Re: pgsql: For all ppc compilers, implement compare_exchange and) fetch_add
Previous Message Michael Paquier 2020-10-11 10:27:20 Re: speed up unicode normalization quick check