We can safely assume that our utmp(5) file format implementation can guarantee
authormestre <mestre@openbsd.org>
Thu, 23 Aug 2018 06:27:54 +0000 (06:27 +0000)
committermestre <mestre@openbsd.org>
Thu, 23 Aug 2018 06:27:54 +0000 (06:27 +0000)
commit3b868dda3484415475e3b11617ea827a74427f70
tree1ead69a19a62f72c08b580586ea885cc874b7485
parent8ac81e2dac4de64516b754f94dd47e0eaedfe863
We can safely assume that our utmp(5) file format implementation can guarantee
space for the NUL character, nevertheless there will always be some piece of
software that can get it wrong and corrupt the database, so we must take this
into consideration.

That being said, there is one strlcpy(3) that needs to be reverted back into
strncpy(3) + '\0' since if we try to use a bogus wtmp(5) file with ac(8) that
is big enough then the NUL char is not verified and it will write memory
out-of-bounds which will make the program crash.

discussed with and OK cheloha@ deraadt@
usr.sbin/ac/ac.c