Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:
> On 2026-Apr-07, Antonin Houska wrote:
>
> > I haven't thought of this explanation because BufFileWrite() only copies the
> > data to a buffer in the BufFile structure and BufFileDumpBuffer() writes the
> > buffer. Maybe valgrind is able to track the copying?
>
> Yeah, apparently it keeps track of tainted bytes somehow. Clever.
>
> The change to palloc0() that I was proposing did not fix the problem,
> because the stack allocated struct overwrote those zeroes with the
> uninitialized padding bytes.
>
> I ended up with an equivalent fix to Srinath's -- zero-initializing
> the stack-allocated struct, so that the bytes that end up copied by
> memcpy() are all defined. Srinath confirmed that in his environment the
> valgrind failure goes away, so I think we're good.
Thanks!
--
Antonin Houska
Web: https://www.cybertec-postgresql.com