lib/libc/gen/realpath_test: make check result from getcwd(3)

This is being done to avoid dereferencing a NULL pointer via strlcat,
obscuring the underlying issue with the getcwd(3) call.

MFC after:	2 weeks
Sponsored by:	Dell EMC Isilon
This commit is contained in:
Enji Cooper 2017-05-15 19:58:01 +00:00
parent f55d7dd1c9
commit 33cbbff80f

View File

@ -34,6 +34,9 @@ __RCSID("$NetBSD: t_realpath.c,v 1.2 2012/03/27 07:54:58 njoly Exp $");
#include <sys/param.h>
#include <atf-c.h>
#ifdef __FreeBSD__
#include <errno.h>
#endif
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
@ -122,8 +125,15 @@ ATF_TC_BODY(realpath_symlink, tc)
char resb[MAXPATHLEN] = { 0 };
int fd;
#ifdef __FreeBSD__
ATF_REQUIRE_MSG(getcwd(path, sizeof(path)) != NULL,
"getcwd(path) failed: %s", strerror(errno));
ATF_REQUIRE_MSG(getcwd(slnk, sizeof(slnk)) != NULL,
"getcwd(slnk) failed: %s", strerror(errno));
#else
(void)getcwd(path, sizeof(path));
(void)getcwd(slnk, sizeof(slnk));
#endif
(void)strlcat(path, "/realpath", sizeof(path));
(void)strlcat(slnk, "/symbolic", sizeof(slnk));