Em qui., 27 de fev. de 2025 às 14:49, Andres Freund <and...@anarazel.de>
escreveu:

> Hi,
>
> On 2025-02-27 12:44:24 -0500, Andres Freund wrote:
> > > CID 1592454: (#1 of 1): Explicit null dereferenced (FORWARD_NULL)
> > > 8. var_deref_op: Dereferencing null pointer per_buffer_data.
> >
> > That's exactly what the messages you quoted are discussing, no?
>
> Ah, no, it isn't. But I still think the coverity alert and the patch don't
> make sense, as per the below:
>
> > > diff --git a/src/backend/storage/aio/read_stream.c
> b/src/backend/storage/aio/read_stream.c
> > > index 04bdb5e6d4..18e9b4f3c4 100644
> > > --- a/src/backend/storage/aio/read_stream.c
> > > +++ b/src/backend/storage/aio/read_stream.c
> > > @@ -666,6 +666,8 @@ read_stream_next_buffer(ReadStream *stream, void
> **per_buffer_data)
> > >
>      READ_BUFFERS_ISSUE_ADVICE : 0)))
> > >                     {
> > >                             /* Fast return. */
> > > +                           if (per_buffer_data)
> > > +                                   *per_buffer_data =
> get_per_buffer_data(stream, oldest_buffer_index);
> > >                             return buffer;
> > >                     }
> >
> > A few lines above:
> >               Assert(stream->per_buffer_data_size == 0);
> >
> > The fast path isn't used when per buffer data is used.  Adding a check
> for
> > per_buffer_data and assigning something to it is nonsensical.
>
Perhaps.

But the fast path and the parameter void **per_buffer_data,
IMHO, is a serious risk in my opinion.
Of course, when in runtime.

best regards,
Ranier Vilela

Reply via email to