]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
tftpd: silence gcc overflow warnings
authorDag-Erling Smørgrav <des@FreeBSD.org>
Fri, 10 May 2024 21:15:54 +0000 (23:15 +0200)
committerDag-Erling Smørgrav <des@FreeBSD.org>
Fri, 10 May 2024 21:16:26 +0000 (23:16 +0200)
commit25945af47e7a1d06c44c8c160045a866e90569ab
tree0ba5dfc86d06fb30f146899e65888057fbd499a6
parent4d09eb87c5d5bec2e2832f50537e2ce6f75f4117
tftpd: silence gcc overflow warnings

GCC 13 complains that we might be writing too much to an on-stack buffer
when createing a filename.

In practice there is a check that filename isn't too long given the
time format and other static characters so GCC is incorrect, but GCC
isn't wrong that we're potentially trying to put a MAXPATHLEN length
string + some other characters into a MAXPATHLEN buffer (if you ignore
the check GCC can't realistically evaluate at compile time).

Switch to snprintf to populate filename to ensure that future logic
errors don't result in a stack overflow.

Shorten the questionably named yyyymmdd buffer enough to slience the
warning (checking the snprintf return value isn't sufficent) while
preserving maximum flexibility for admins who use the -F option.

MFC after: 3 days
Sponsored by: Klara, Inc.
Reviewed by: brooks
Differential Revision: https://reviews.freebsd.org/D45086
libexec/tftpd/tftpd.c