Re: pgsql: Exclude unlogged tables from base backups

Поиск
Список
Период
Сортировка
От David Steele
Тема Re: pgsql: Exclude unlogged tables from base backups
Дата
Msg-id cf8a4117-0b15-9755-0af6-9eae53857fa7@pgmasters.net
обсуждение исходный текст
Ответ на Re: pgsql: Exclude unlogged tables from base backups  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: pgsql: Exclude unlogged tables from base backups  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-committers
On 3/25/18 3:22 PM, Tom Lane wrote:
> David Steele <david@pgmasters.net> writes:
>> On 3/25/18 2:16 PM, Tom Lane wrote:
>>> Buildfarm member skink (valgrind) has reported this during its last couple
>>> of runs:
> 
>> I think skink is using large values for rel oids and that has exposed a
>> bug.  The strncpy doesn't zero terminate the string if the oid has the
>> max number of characters.  At least, I was able to reproduce under those
>> circumstances.
> 
> Actually, that code didn't guarantee zero termination under *any*
> circumstances; it only happened to work if the stack contained
> zeroes to start with.

Interesting.  strncpy() says it will pad the destination with NULLs when
src is less than the size provided.  Perhaps some compilers don't honor
that?

>> The attached should fix it.
> 
> Found this in my inbox right after pushing a fix.  I did it slightly
> differently, emulating the later rather than earlier calls in reinit.c.
> The earlier ones memset the whole target field because they're concerned
> about being able to hash it, but we don't need that here, just zero
> termination.

Yeah, that's the way I would normally do it, but when I searched
reinit.c the first few hits did memset() so I went with that.

Thanks for taking care of it.

-- 
-David
david@pgmasters.net


В списке pgsql-committers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: pgsql: Exclude unlogged tables from base backups
Следующее
От: Tom Lane
Дата:
Сообщение: Re: pgsql: Exclude unlogged tables from base backups