locale.c: Don't be too clever in strlcat
authorKarl Williamson <khw@cpan.org>
Sat, 22 Jul 2017 18:44:16 +0000 (12:44 -0600)
committerKarl Williamson <khw@cpan.org>
Sun, 10 Sep 2017 05:05:11 +0000 (23:05 -0600)
commit6069d6c5d1109837259a2e1dcf38c27c6b71c8df
treea8db7fb21ccb68c50ca60eaf39e16ae67a37deb2
parent08b6dc1dd594e877912f45d19ed34b0293159bab
locale.c: Don't be too clever in strlcat

This code I wrote was attempting to avoid multiple calls to strlen in
constructing the catenation of various components of a string.  It did
this by keeping track of how far it got each iteration, and using that
as a starting point for the next.  I now realize that the return value
of strlcat is as if it succeeds, even if there isn't enough room.  That
means that if there were a problem, this could start out an iteration
such that it would be writing beyond the end of the buffer.  It is safer
to not do this, so this commit removes it.

The use of strlcat is a safety measure, as there should be a sufficient
amount of space calculated for things to fit, so there is no bug here.
But one should be safe.
locale.c