git: 040b82dd7e04 - main - dns/register-dnsclient: use mktemp for KRB5CCNAME, destroy ticket on exit, quote vars

From: Michael Osipov <michaelo_at_FreeBSD.org>
Date: Sun, 01 Nov 2026 21:51:30 UTC
The branch main has been updated by michaelo:

URL: https://cgit.FreeBSD.org/ports/commit/?id=040b82dd7e049d249d66137ca59d0220947a3427

commit 040b82dd7e049d249d66137ca59d0220947a3427
Author:     Michael Osipov <michaelo@FreeBSD.org>
AuthorDate: 2026-11-01 21:14:51 +0000
Commit:     Michael Osipov <michaelo@FreeBSD.org>
CommitDate: 2026-11-01 21:51:17 +0000

    dns/register-dnsclient: use mktemp for KRB5CCNAME, destroy ticket on exit, quote vars
    
    KRB5CCNAME was a predictable, fixed path (/tmp/krb5cc_$name), shared by
    every invocation and never cleaned up; use mktemp to get a private,
    per-run ccache and destroy it via kdestroy in clean_exit. Quote
    $KRB5_CLIENT_PRINCIPAL and the tr arguments to avoid word-splitting/glob
    expansion and fix the broken backslash-escaped tr "\"[:lower:]\""
    quoting, which only worked by accident under sh.
    
    Bump PORTVERSION.
    
    Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
---
 dns/register-dnsclient/Makefile                    |  2 +-
 dns/register-dnsclient/files/register-dnsclient.in | 10 ++++++----
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/dns/register-dnsclient/Makefile b/dns/register-dnsclient/Makefile
index fec4660ba51a..ff50bb044099 100644
--- a/dns/register-dnsclient/Makefile
+++ b/dns/register-dnsclient/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=		register-dnsclient
-PORTVERSION=	20260101
+PORTVERSION=	20261101
 CATEGORIES=		dns
 DISTFILES=
 
diff --git a/dns/register-dnsclient/files/register-dnsclient.in b/dns/register-dnsclient/files/register-dnsclient.in
index af2674d3aaef..65942ca0c8a3 100644
--- a/dns/register-dnsclient/files/register-dnsclient.in
+++ b/dns/register-dnsclient/files/register-dnsclient.in
@@ -13,6 +13,8 @@ fi
 clean_exit() {
     local rc=$1
 
+    [ -f "$KRB5CCNAME" ] && %%GSSAPIBASE%%/bin/kdestroy
+
     if [ ! -t 1 ]
     then
         exec 1>&3 3>&-
@@ -32,16 +34,16 @@ clean_exit() {
     fi
 }
 
-export KRB5CCNAME=/tmp/krb5cc_$name
+export KRB5CCNAME="$(mktemp /tmp/krb5cc_${name}.XXXXXXXXXX)"
 KRB5_CLIENT_PRINCIPAL="$(hostname -s)\$"
 
-%%GSSAPIBASE%%/bin/kinit -k $KRB5_CLIENT_PRINCIPAL
+%%GSSAPIBASE%%/bin/kinit -k "$KRB5_CLIENT_PRINCIPAL"
 rc=$?
 if [ $rc -ne 0 ]
 then
-    KRB5_CLIENT_PRINCIPAL="$(hostname -s | tr \"[:lower:]\" \"[:upper:]\")\$"
+    KRB5_CLIENT_PRINCIPAL="$(hostname -s | tr '[:lower:]' '[:upper:]')\$"
     >&2 echo "$name: retrying with $KRB5_CLIENT_PRINCIPAL"
-    %%GSSAPIBASE%%/bin/kinit -k $KRB5_CLIENT_PRINCIPAL
+    %%GSSAPIBASE%%/bin/kinit -k "$KRB5_CLIENT_PRINCIPAL"
     rc=$?
     if [ $rc -ne 0 ]
     then