From nobody Sun Oct 18 15:46:57 2026 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4j732T4dgdz6vvnH for ; Sun, 18 Oct 2026 15:46:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (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) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 4j732T41PGz4DXT for ; Sun, 18 Oct 2026 15:46:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1792338417; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vzQQZIs0SFhCR9yILQljkYvPyOx6Lo/Wo9uA4VEhvx4=; b=bhG+kAqFSFhoZl3EUHZnZv2IOuPqvdbDFAupReMyuIbz8jCfi9yqJW1J+GdbBNPJEc8t8n eFquJFDcardKJFJeu8hzlX/jKY2dIS1DNDlSigbp6xptVr5v+lNbnkufOX7CaZd+AAgcl3 WFMb/zFrUV77x1tL/xuwd9BJjk+XpBExLE4KF3TKRwqdOW1VVQI+C/gta3n4AGOwQ6NzQx EP2+X8dTRRJUc/BLke9mlNr7pzlxfamcRJLprxrAlRCYbcUlYVKRReCbNDBjRQNgDYMnLw ANwbaYODEPGlpg+bBQ86A8VF4CQkTElfIbO/PtoD9ZaieMbwfzJVYNbvQgf2Zg== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1792338417; b=TNHbZThd/swqyf+HFmmCU602bFE4aHwDSF7zixleYakIuTcLzKBYZX43P8R103aSLeiY77 UqmYva6OpjEqZsRep9cPtC2+j7rH8SKVKRNxDhZc5NS5IB1qQS8n4i7ICha9nnas2wiIt+ MP5DbKYS8GuFgeP4xCkr8WqZw/x7vEqCuB/HdiY1ygidEmwCrXKy7ordvGIHSC43RK1X6x Ra7icccr1wpdI4aSZg+xzEEnVU4yTkVoisj8CpqirEYAgLGhHCTvCtGT0mWtJ6I3xDIi1m Z3Hv2p3Pi0PJMpTb5SqKJ26s5YtnOkNnYZzb38zn74idtV+hbTl6PhPs51NWYA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1792338417; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vzQQZIs0SFhCR9yILQljkYvPyOx6Lo/Wo9uA4VEhvx4=; b=iJ2fBPhTPsULT8d2GvmEYEhw9at+TbryYa7yMgzbKbMIXgJwMuBl9cjjFVa5vpfuNn+ArW YOkPPNAHENjDlWcL66goW0k2owFZu7AuieBkrnPqYC8K0y2D2ncI3rgJnHp5ZsO+puw4xd sEB3NJFtXLFxqqGq2UX4hKjLYK3Tty6OPjVXjPS2julEV5ee0vNyQEMKXpB/nYziAjLCAT 9HISpWBix07gMjteemVXFGKdp4T5ZnZQAgg0DAqziaAnMz+S6gJ6I3ffY8/FEN+iSgO9Mt npcAzBAVSezRdWRxpmNo/WCWNY7tkfHo5vHCXZO953PxlG/tVqR7ZuPqhT4T9Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4j732T3gl7zwfv for ; Sun, 18 Oct 2026 15:46:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 44e02 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sun, 18 Oct 2026 15:46:57 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Devin Teske Subject: git: 158c59210d95 - main - sysconf: report a truncated keyword match list List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org List-Id: Commit messages for the main branch of the src repository List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dteske X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 158c59210d9530af64b2bd6a08c7ffd216b243a8 Auto-Submitted: auto-generated Date: Sun, 18 Oct 2026 15:46:57 +0000 Message-Id: <6ad4e9f1.44e02.e9ce85a@gitrepo.freebsd.org> The branch main has been updated by dteske: URL: https://cgit.FreeBSD.org/src/commit/?id=158c59210d9530af64b2bd6a08c7ffd216b243a8 commit 158c59210d9530af64b2bd6a08c7ffd216b243a8 Author: Devin Teske AuthorDate: 2026-10-18 15:43:37 +0000 Commit: Devin Teske CommitDate: 2026-10-18 15:43:37 +0000 sysconf: report a truncated keyword match list snprintf(3) returns the length that would have been written, so an ambiguous prefix can fill the match buffer with no sign that names were cut off. Append " (truncated)" when that happens. Drop the empty statement when scanning option arguments: only a separate argument consumes the next argv entry. Bump sysconf(8) to 2.2.1. Suggested by: fuz Reviewed by: fuz Differential Revision: https://reviews.freebsd.org/D60815 --- usr.sbin/sysconf/sysconf-targets.c | 20 +++++++++++++------- usr.sbin/sysconf/sysconf_priv.h | 2 +- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/usr.sbin/sysconf/sysconf-targets.c b/usr.sbin/sysconf/sysconf-targets.c index 9031b6c06748..94b616db9b93 100644 --- a/usr.sbin/sysconf/sysconf-targets.c +++ b/usr.sbin/sysconf/sysconf-targets.c @@ -70,7 +70,13 @@ resolve_keyword(const char *token, const char *const *keywords, if (nmatch == 1) return (found); if (nmatch > 1) { - warnx("ambiguous %s `%s'; matches %s", what, token, matches); + /* + * snprintf(3) returns the length that would have been + * written, so off >= sizeof(matches) means the list was + * truncated. + */ + warnx("ambiguous %s `%s'; matches %s%s", what, token, matches, + off >= sizeof(matches) ? " (truncated)" : ""); usage(); } return (NULL); @@ -127,14 +133,14 @@ find_operand(int argc, char *argv[], int from, int past_dd) } for (p = argv[n] + 1; *p != '\0'; p++) { o = strchr(OPTSTRING, *p); + /* Does the option take an argument? */ if (o != NULL && o[1] == ':') { - /* Takes an argument */ - if (p[1] != '\0') { - ; - /* attached: rest of argv[n] */ - } else if (n + 1 < argc) { + /* + * Is the option argument in the next + * argv entry? + */ + if (p[1] == '\0' && n + 1 < argc) { n++; - /* separate argv */ } break; } diff --git a/usr.sbin/sysconf/sysconf_priv.h b/usr.sbin/sysconf/sysconf_priv.h index a2d9190df284..1037c422d0ed 100644 --- a/usr.sbin/sysconf/sysconf_priv.h +++ b/usr.sbin/sysconf/sysconf_priv.h @@ -37,7 +37,7 @@ #define __unused /* not all compilers support attributes */ #endif -#define SYSCONF_VERSION "2.2 2026-09-22" +#define SYSCONF_VERSION "2.2.1 2026-10-17" /* getopt(3) optstring; shared by parse_options() and find_target() */ #define OPTSTRING "AacdDEeFf:hij:k:lLnNqR:svVx"