Обсуждение: XLogInsert() of dangling pointer while logging replica identity

Поиск
Список
Период
Сортировка

XLogInsert() of dangling pointer while logging replica identity

От
Stas Kelvich
Дата:
Hi, hackers.

  It seems that heapam.c:3082 calls XLogRegisterData() with an argument
allocated on stack, but following call to XLogInsert() happens after
end of context for that variable.
  Issue spotted by clang's AddressSanitizer. Fix attached.

--
Stas Kelvich
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company


Вложения

Re: XLogInsert() of dangling pointer while logging replica identity

От
Michael Paquier
Дата:
On Thu, Jan 31, 2019 at 11:51:36PM +0300, Stas Kelvich wrote:
>   It seems that heapam.c:3082 calls XLogRegisterData() with an argument
> allocated on stack, but following call to XLogInsert() happens after
> end of context for that variable.
>   Issue spotted by clang's AddressSanitizer. Fix attached.

Oh, good catch.  Committed and back-patched down to 9.4.
--
Michael

Вложения

Re: XLogInsert() of dangling pointer while logging replica identity

От
Andres Freund
Дата:
On 2019-02-01 10:38:49 +0900, Michael Paquier wrote:
> On Thu, Jan 31, 2019 at 11:51:36PM +0300, Stas Kelvich wrote:
> >   It seems that heapam.c:3082 calls XLogRegisterData() with an argument
> > allocated on stack, but following call to XLogInsert() happens after
> > end of context for that variable.
> >   Issue spotted by clang's AddressSanitizer. Fix attached.
> 
> Oh, good catch.  Committed and back-patched down to 9.4.

Thanks Stas and Michael!