Re: Buffer overflow in SerializeLibraryState() found by Address Sanitizer - Mailing list pgsql-hackers

From Daniel Gustafsson
Subject Re: Buffer overflow in SerializeLibraryState() found by Address Sanitizer
Date
Msg-id 0F71EBA4-D2BD-4951-A95F-C44952434797@yesql.se
Whole thread Raw
Responses Re: Buffer overflow in SerializeLibraryState() found by Address Sanitizer
List pgsql-hackers
> On 10 Jun 2025, at 14:59, David Geier <geidav.pg@gmail.com> wrote:
>
> Hi hackers!
>
> SerializeLibraryState() writes 1 byte too much into the buffer pointed to by start_address. This is the very last
'\0'it writes after the loop. Attached is a patch that fixes the problem by accounting for that extra byte in
EstimateLibraryStateSpace()

The last '\0' written isn't performed in relation to the size, but at a fixed
index in the buffer:

    ...
    }
    start_address[0] = '\0';

How would that cause a buffer overflow?

--
Daniel Gustafsson




pgsql-hackers by date:

Previous
From: Jim Jones
Date:
Subject: Re: Feature: psql - display current search_path in prompt
Next
From: Florents Tselai
Date:
Subject: Re: Feature: psql - display current search_path in prompt