rtld: fix after r356300

binpath local was changed from char array to a char pointer, update
strlcpy/strlcat uses.

Reported by:	Coverity through vangyzen
CID:	1412239 and 1412240
Reviewed by:	emaste, imp, vangyzen
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D23090
This commit is contained in:
Konstantin Belousov 2020-01-08 17:37:20 +00:00
parent 778b62251c
commit f26c30a5f3
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=356503

View File

@ -5531,15 +5531,12 @@ open_binary_fd(const char *argv0, bool search_in_path,
fd = -1;
errno = ENOENT;
while ((pe = strsep(&pathenv, ":")) != NULL) {
if (strlcpy(binpath, pe, sizeof(binpath)) >=
sizeof(binpath))
if (strlcpy(binpath, pe, PATH_MAX) >= PATH_MAX)
continue;
if (binpath[0] != '\0' &&
strlcat(binpath, "/", sizeof(binpath)) >=
sizeof(binpath))
strlcat(binpath, "/", PATH_MAX) >= PATH_MAX)
continue;
if (strlcat(binpath, argv0, sizeof(binpath)) >=
sizeof(binpath))
if (strlcat(binpath, argv0, PATH_MAX) >= PATH_MAX)
continue;
fd = open(binpath, O_RDONLY | O_CLOEXEC | O_VERIFY);
if (fd != -1 || errno != ENOENT) {