Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 3 Jun 2025 04:07:44 GMT
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: e26f3836d4e1 - main - kdump(1): Use static array for header types string literals
Message-ID:  <202506030407.55347iAF071348@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by kib:

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

commit e26f3836d4e129c77e28854e9f84874a92723ac2
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2025-05-31 22:51:20 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2025-06-03 02:47:38 +0000

    kdump(1): Use static array for header types string literals
    
    Also change sprintf() to snprintf().
    
    Reviewed by:    brooks
    Sponsored by:   The FreeBSD Foundation
    MFC after:      1 week
    Differential revision:  https://reviews.freebsd.org/D50633
---
 usr.bin/kdump/kdump.c | 73 +++++++++++++++++----------------------------------
 1 file changed, 24 insertions(+), 49 deletions(-)

diff --git a/usr.bin/kdump/kdump.c b/usr.bin/kdump/kdump.c
index d45a0cba2005..a8f3df14f304 100644
--- a/usr.bin/kdump/kdump.c
+++ b/usr.bin/kdump/kdump.c
@@ -663,6 +663,25 @@ dumptimespec(struct ktr_header *kth)
 	}
 }
 
+static const char * const hdr_names[] = {
+	[KTR_SYSCALL] =		"CALL",
+	[KTR_SYSRET] =		"RET ",
+	[KTR_NAMEI] =		"NAMI",
+	[KTR_GENIO] =		"GIO ",
+	[KTR_PSIG] =		"PSIG",
+	[KTR_CSW] =		"CSW ",
+	[KTR_USER] =		"USER",
+	[KTR_STRUCT] =		"STRU",
+	[KTR_STRUCT_ARRAY] =	"STRU",
+	[KTR_SYSCTL] =		"SCTL",
+	[KTR_CAPFAIL] =		"CAP ",
+	[KTR_FAULT] =		"PFLT",
+	[KTR_FAULTEND] =	"PRET",
+	[KTR_ARGS] =		"ARGS",
+	[KTR_ENVS] =		"ENVS",
+	[KTR_EXTERR] =		"EERR",
+};
+
 static void
 dumpheader(struct ktr_header *kth, u_int sv_flags)
 {
@@ -671,56 +690,12 @@ dumpheader(struct ktr_header *kth, u_int sv_flags)
 	const char *arch;
 	const char *type;
 
-	switch (kth->ktr_type) {
-	case KTR_SYSCALL:
-		type = "CALL";
-		break;
-	case KTR_SYSRET:
-		type = "RET ";
-		break;
-	case KTR_NAMEI:
-		type = "NAMI";
-		break;
-	case KTR_GENIO:
-		type = "GIO ";
-		break;
-	case KTR_PSIG:
-		type = "PSIG";
-		break;
-	case KTR_CSW:
-		type = "CSW ";
-		break;
-	case KTR_USER:
-		type = "USER";
-		break;
-	case KTR_STRUCT:
-	case KTR_STRUCT_ARRAY:
-		type = "STRU";
-		break;
-	case KTR_SYSCTL:
-		type = "SCTL";
-		break;
-	case KTR_CAPFAIL:
-		type = "CAP ";
-		break;
-	case KTR_FAULT:
-		type = "PFLT";
-		break;
-	case KTR_FAULTEND:
-		type = "PRET";
-		break;
-	case KTR_ARGS:
-	        type = "ARGS";
-	        break;
-	case KTR_ENVS:
-	        type = "ENVS";
-	        break;
-	case KTR_EXTERR:
-	        type = "EERR";
-	        break;
-	default:
-		sprintf(unknown, "UNKNOWN(%d)", kth->ktr_type);
+	if (kth->ktr_type < 0 || (size_t)kth->ktr_type >= nitems(hdr_names)) {
+		snprintf(unknown, sizeof(unknown), "UNKNOWN(%d)",
+		    kth->ktr_type);
 		type = unknown;
+	} else {
+		type = hdr_names[kth->ktr_type];
 	}
 
 	/*



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202506030407.55347iAF071348>