Re: Fix possible dereference null pointer (PQprint) - Mailing list pgsql-hackers

From Ranier Vilela
Subject Re: Fix possible dereference null pointer (PQprint)
Date
Msg-id CAEudQAqnJD+KLeD0WyCMpuPLWMgt9bpRFhAfiJWshxwdXyNVUQ@mail.gmail.com
Whole thread Raw
In response to Re: Fix possible dereference null pointer (PQprint)  (Daniel Gustafsson <daniel@yesql.se>)
List pgsql-hackers
Em sex., 31 de mai. de 2024 às 05:03, Daniel Gustafsson <daniel@yesql.se> escreveu:
> On 27 May 2024, at 16:52, Ranier Vilela <ranier.vf@gmail.com> wrote:

> In the function *PQprint*, the variable po->fieldName can be NULL.

Yes.

> See the checks a few lines up.

Indeed, let's check it.

        for (numFieldName = 0;
             po->fieldName && po->fieldName[numFieldName];
             numFieldName++)
            ;
        for (j = 0; j < nFields; j++)
        {
            int         len;
            const char *s = (j < numFieldName && po->fieldName[j][0]) ?
                po->fieldName[j] : PQfname(res, j);

If po->fieldName is NULL then numFieldName won't be incremented and will remain
zero.  In the check you reference we check (j < numFieldName) which will check
the j in the range 0..nFields for being less than zero.  The code thus does
seem quite correct to me.
You are completely correct. My bad.

Thank you Daniel.

best regards,
Ranier Vilela

pgsql-hackers by date:

Previous
From: Erik Wienhold
Date:
Subject: Re: pltcl crashes due to a syntax error
Next
From: Ranier Vilela
Date:
Subject: Re: Avoid an odd undefined behavior with memcmp (src/bin/pg_rewind/pg_rewind.c)