On 27 Jan 2018, at 23:20, Ed Schouten <e...@nuxi.nl> wrote:
> 
> 2018-01-27 23:16 GMT+01:00 Pedro F. Giffuni <p...@freebsd.org>:
>>        char host[sizeof(utmp.ut_host) + 1];
>>        insecure = 1;
>> 
>> -       strncpy(host, utmp.ut_host, sizeof(utmp.ut_host));
>> -       host[sizeof(utmp.ut_host)] = 0;
>> +       strncpy(host, utmp.ut_host, sizeof(host));
> 
> Wait... This may access utmp.ut_host one byte past the end and no
> longer guarantees that host is null-terminated, right?

No, strncpy "copies at most len characters from src into dst".  However,
if the length of the source is equal to or greater than len, the
destination is *not* null terminated.  This is likely why the
"host[sizeof(utmp.ut_host)] = 0;" statement was added.

In any case, this is why strlcpy exists. :)

-Dimitry

Attachment: signature.asc
Description: Message signed with OpenPGP

Reply via email to