git: 9d29fc2e4bfb - main - sh: Avoid referencing uninitialized memory in alias

From: Joseph Mingrone <jrm_at_FreeBSD.org>
Date: Fri, 16 May 2025 14:04:33 UTC
The branch main has been updated by jrm:

URL: https://cgit.FreeBSD.org/src/commit/?id=9d29fc2e4bfba9fcd3b0944e683458a3f1fa0c47

commit 9d29fc2e4bfba9fcd3b0944e683458a3f1fa0c47
Author:     Joseph Mingrone <jrm@FreeBSD.org>
AuthorDate: 2025-05-15 14:42:14 +0000
Commit:     Joseph Mingrone <jrm@FreeBSD.org>
CommitDate: 2025-05-16 14:03:09 +0000

    sh: Avoid referencing uninitialized memory in alias
    
    If run as
            alias ''
    uninitialized memory could be referenced.
    
    This is based on a fix from NetBSD.  For more information, refer to
    https://github.com/NetBSD/src/commit/10cfed82c28 .
    
    Obtained from:  NetBSD (Robert Elz <kre@netbsd.org>, 10cfed82c28)
    MFC after:      3 days
    
    Reported by:    mckusick, Robert Elz <kre@netbsd.org>
    Reviewed by:    emaste
    Differential Revision:  https://reviews.freebsd.org/D50364
---
 bin/sh/alias.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/bin/sh/alias.c b/bin/sh/alias.c
index a02554d66e24..681e82b3e19e 100644
--- a/bin/sh/alias.c
+++ b/bin/sh/alias.c
@@ -204,6 +204,11 @@ aliascmd(int argc __unused, char **argv __unused)
 		return (0);
 	}
 	while ((n = *argptr++) != NULL) {
+		if (n[0] == '\0') {
+			warning("'': not found");
+			ret = 1;
+			continue;
+		}
 		if ((v = strchr(n+1, '=')) == NULL) /* n+1: funny ksh stuff */
 			if ((ap = lookupalias(n, 0)) == NULL) {
 				warning("%s: not found", n);