[hackers] [sbase][PATCH] basename: Ignore suffix when its an empty string

From: Carlos J. Torres <vlaadbrain_AT_gmail.com>
Date: Mon, 3 Nov 2025 10:10:31 -0500

basename(3) manual states if path is a null pointer or emtpy
string, a pointer to "." is returned. We shouldn't attempt
to modify it because its const.
---
 basename.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/basename.c b/basename.c
index 94a2848..63e7b7b 100644
--- a/basename.c
+++ b/basename.c
_AT_@ -15,6 +15,7 @@ int
 main(int argc, char *argv[])
 {
 	ssize_t off;
+	size_t slen;
 	char *p;
 
 	ARGBEGIN {
_AT_@ -26,8 +27,8 @@ main(int argc, char *argv[])
 		usage();
 
 	p = basename(argv[0]);
-	if (argc == 2) {
-		off = strlen(p) - strlen(argv[1]);
+	if (argc == 2 && (slen = strlen(argv[1])) > 0) {
+		off = strlen(p) - slen;
 		if (off > 0 && !strcmp(p + off, argv[1]))
 			p[off] = '\0';
 	}
-- 
2.51.2
Received on Mon Nov 03 2025 - 16:10:31 CET

This archive was generated by hypermail 2.3.0 : Mon Nov 03 2025 - 16:12:39 CET