From d736f87f8e8a11d0b55ef29070a0a14c301377b4 Mon Sep 17 00:00:00 2001 From: kre Date: Thu, 25 May 2023 17:24:17 +0000 Subject: [PATCH] If it isn't possible to determine the realpath() of ".", then simply give up on attempting to resolve any relative path - there's no hope. --- usr.bin/realpath/realpath.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/usr.bin/realpath/realpath.c b/usr.bin/realpath/realpath.c index b98f28337ccb..2436b470a565 100644 --- a/usr.bin/realpath/realpath.c +++ b/usr.bin/realpath/realpath.c @@ -1,4 +1,4 @@ -/* $NetBSD: realpath.c,v 1.2 2022/07/21 09:47:31 kre Exp $ */ +/* $NetBSD: realpath.c,v 1.3 2023/05/25 17:24:17 kre Exp $ */ /*- * SPDX-License-Identifier: BSD-3-Clause * @@ -35,7 +35,7 @@ #if 0 __FBSDID("$FreeBSD: head/bin/realpath/realpath.c 326025 2017-11-20 19:49:47Z pfg $"); #else -__RCSID("$NetBSD: realpath.c,v 1.2 2022/07/21 09:47:31 kre Exp $"); +__RCSID("$NetBSD: realpath.c,v 1.3 2023/05/25 17:24:17 kre Exp $"); #endif #endif /* not lint */ @@ -132,6 +132,10 @@ process(char *path) if (p == NULL) { p = realpath(".", buf); + if (p == NULL) { + warnx("relative path; current location unknown"); + return false; + } if ((size_t)snprintf(buf2, sizeof buf2, "%s/%s", buf, path) >= sizeof buf2) { if (!qflag)