Re: Replace remaining StrNCpy() by strlcpy()

Поиск
Список
Период
Сортировка
От Peter Eisentraut
Тема Re: Replace remaining StrNCpy() by strlcpy()
Дата
Msg-id 905987b9-b446-cfbb-8847-96c9c8d34027@2ndquadrant.com
обсуждение исходный текст
Ответ на Re: Replace remaining StrNCpy() by strlcpy()  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Replace remaining StrNCpy() by strlcpy()  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
On 2020-08-03 14:12, Tom Lane wrote:
> I wrote:
>> David Rowley <dgrowleyml@gmail.com> writes:
>>> Will mean that we'll now no longer zero the full length of the m_xlog
>>> field after the end of the string. Won't that mean we'll start writing
>>> junk bytes to the stats collector?
> 
>> StrNCpy doesn't zero-fill the destination today either (except for
>> the very last byte).
> 
> Oh, no, I take that back --- didn't read all of the strncpy man
> page :-(.  Yeah, this is a point.  We'd need to check each call
> site to see whether the zero-padding matters.

Oh, that's easy to miss.

> In the specific case of the stats collector, if you don't want
> to be sending junk bytes then you'd better be memset'ing the
> whole message buffer not just this string field.  So I'm not
> sure that the argument has any force there.  But in places
> like namecpy() and namestrcpy() we absolutely do mean to be
> zeroing the whole destination buffer.

That's easy to fix, but it's perhaps wondering briefly why it needs to 
be zero-padded.  hashname() doesn't care, heap_form_tuple() doesn't 
care.  Does anything care?

While we're here, shouldn't namestrcpy() do some pg_mbcliplen() stuff 
like namein()?

-- 
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



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

Предыдущее
От: Peter Geoghegan
Дата:
Сообщение: Re: new heapcheck contrib module
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Replace remaining StrNCpy() by strlcpy()