Re: ARRNELEMS Out-of-bounds possible errors - Mailing list pgsql-hackers

From Ranier Vilela
Subject Re: ARRNELEMS Out-of-bounds possible errors
Date
Msg-id CAEudQArkLAqnX0QiJiqtd5uHwaeUwcm8TVqSMRvNzMwqeKrDrw@mail.gmail.com
Whole thread Raw
In response to Re: ARRNELEMS Out-of-bounds possible errors  (Nikita Malakhov <hukutoc@gmail.com>)
Responses Re: ARRNELEMS Out-of-bounds possible errors  (Nikita Malakhov <hukutoc@gmail.com>)
List pgsql-hackers
Em qui., 22 de dez. de 2022 às 15:45, Nikita Malakhov <hukutoc@gmail.com> escreveu:
Hi,

Actually, there would be much more sources affected, like
         nbytes += subbytes[outer_nelems];
         subnitems[outer_nelems] = ArrayGetNItems(this_ndims,
                                        ARR_DIMS(array));
         nitems += subnitems[outer_nelems];
         havenulls |= ARR_HASNULL(array);
         outer_nelems++;
      }

Maybe it is better for most calls like this to keep old behavior, by passing a flag
that says which behavior is expected by caller?
I agreed that it is better to keep old behavior.
Even the value 0 is problematic, with calls like this:

nel = ARRNELEMS(ent);
memcpy(ptr, ARRPTR(ent), nel * sizeof(int32));

regards,
Ranier Vilela

pgsql-hackers by date:

Previous
From: Thomas Munro
Date:
Subject: Re: Array initialisation notation in syscache.c
Next
From: David Rowley
Date:
Subject: Re: Allow WindowFuncs prosupport function to use more optimal WindowClause options