git: 475e3bc18a10 - main - safe_eval.sh: add safe_set_var

From: Simon J. Gerraty <sjg_at_FreeBSD.org>
Date: Sun, 11 Oct 2026 05:55:23 UTC
The branch main has been updated by sjg:

URL: https://cgit.FreeBSD.org/src/commit/?id=475e3bc18a108dca375424c97de13939224c2d89

commit 475e3bc18a108dca375424c97de13939224c2d89
Author:     Simon J. Gerraty <sjg@FreeBSD.org>
AuthorDate: 2026-10-11 05:54:59 +0000
Commit:     Simon J. Gerraty <sjg@FreeBSD.org>
CommitDate: 2026-10-11 05:55:16 +0000

    safe_eval.sh: add safe_set_var
    
    Get the log message right!
    Fix default allowed chars (untabify clobbered TAB)
    Add a couple more : messages to help debugging.
---
 libexec/rc/safe_eval.sh | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/libexec/rc/safe_eval.sh b/libexec/rc/safe_eval.sh
index b5ad1ca8639d..338221dfa564 100644
--- a/libexec/rc/safe_eval.sh
+++ b/libexec/rc/safe_eval.sh
@@ -1,6 +1,6 @@
 :
 # RCSid:
-#	$Id: safe_eval.sh,v 1.30 2026/10/11 04:48:37 sjg Exp $
+#	$Id: safe_eval.sh,v 1.31 2026/10/11 05:49:50 sjg Exp $
 #
 #	@(#) Copyright (c) 2023-2026 Simon J. Gerraty
 #
@@ -52,12 +52,19 @@ safe_set_var() {
     fi
     : first is ssv_var sane?
     case "$ssv_var" in
-    *[!A-Za-z0-9_]*|ssv_*) ssv_var=invalid; ssv_rc=1;;
+    *[!A-Za-z0-9_]*|ssv_*)
+        ssv_var=invalid
+        ssv_rc=1
+        ;;
     esac
+    : is ssv_val ok - "$ssv_val"
     case "$ssv_val" in
-    *[!${3:-A-Za-z0-9_  ,/=:+-}$4]*) ssv_val=invalid; ssv_rc=${ssv_rc:-2};;
+    *[!${3:-A-Za-z0-9_. 	\$,/=:+-}$4]*)
+        ssv_val=invalid
+        ssv_rc=${ssv_rc:-2}
+        ;;
     esac
-    : is $ssv_var is allowed
+    : is $ssv_var is allowed - "${2:-$ssv_var}"
     case " ${2:-$ssv_var} " in
     *" $ssv_var "*) ;;
     *) ssv_rc=${ssv_rc:-3};;