g; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1748923665; a=rsa-sha256; cv=none; b=oClK+WWb0je5cgk8ZLoZcW/Ht2OR1IudE/91ga2CNwbFFJgsBNU0RrX7/OFoFa+RcUHqGP Ax443JJG5fu4p79JryLNdNKwIqvoFWgYOXRZdUPSdKEONwkyi6abRto3hCbR2mqP0ezh7h EQxJVsR8ezY8FGSpFVkCUZ94Y2plGWf5FfujkbCpRBDxFJ3adXy0HwNkSiHYQBMaP7g1Du Fsgd5kM4TRymEg0WembF6PEg/fg78z2/OQx13nvB7LzKNJsNr0uvQ3lAzS02GbgwknKnLx 2l8Di5WtVJgTVRZ8P60BRfYLXGlPY2Fj78M/HsBtG9IZhHpHANevqG8+xjQqHA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4bBHHP05VPz6rx; Tue, 03 Jun 2025 04:07:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 55347iWS071351; Tue, 3 Jun 2025 04:07:44 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 55347iAF071348; Tue, 3 Jun 2025 04:07:44 GMT (envelope-from git) Date: Tue, 3 Jun 2025 04:07:44 GMT Message-Id: <202506030407.55347iAF071348@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Konstantin Belousov Subject: git: e26f3836d4e1 - main - kdump(1): Use static array for header types string literals List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e26f3836d4e129c77e28854e9f84874a92723ac2 Auto-Submitted: auto-generated The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=e26f3836d4e129c77e28854e9f84874a92723ac2 commit e26f3836d4e129c77e28854e9f84874a92723ac2 Author: Konstantin Belousov AuthorDate: 2025-05-31 22:51:20 +0000 Commit: Konstantin Belousov 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]; } /*