Re: Using the return value of strlcpy() and strlcat()
От | Ashwin Agrawal |
---|---|
Тема | Re: Using the return value of strlcpy() and strlcat() |
Дата | |
Msg-id | CALfoeisXr118_wGphaC-tntav9t-nUU_DZ1uKH6cgrJhVQaGRA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Using the return value of strlcpy() and strlcat() (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: Using the return value of strlcpy() and strlcat()
|
Список | pgsql-hackers |
On Wed, Mar 13, 2019 at 9:51 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
ilmari@ilmari.org (Dagfinn Ilmari Mannsåker) writes:
> [ let's convert
> + strlcpy(buf + buflen, name, NAMEDATALEN);
> + buflen += strlen(buf + buflen);
> to
> + buflen += strlcpy(buf + buflen, name, NAMEDATALEN);
> ]
I don't think that's a safe transformation: what strlcpy returns is
strlen(src), which might be different from what it was actually
able to fit into the destination.
Sure, they're equivalent if no truncation occurred; but if we were
100.00% sure of no truncation, we'd likely not bother with strlcpy.
So, if return value < length (3rd argument) we should be able to use the return value and avoid the strlen, else do the strlen ?
В списке pgsql-hackers по дате отправления: