From nobody Thu Oct 2 08:20:40 2025 X-Original-To: dev-commits-src-all@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 4ccl9N5RDFz69KX2; Thu, 02 Oct 2025 08:20:40 +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 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ccl9N4XqRz4N0x; Thu, 02 Oct 2025 08:20:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1759393240; 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=KI6k6bLNcOLzIU3YbD69fUb+FIIB0pn7dXMzcAxMxhE=; b=CqhemUenpecZD9YJS+9/d7QCKGeQVYQquAc0ZW1Y8lDfqLipj3QU0mhbdhxiEEdHG17nVF /ebXFJAHyTu0J64p4l12sM3D7CHGGZ7yL0OIXPj5iEs5H8Q50FF9duSXGvTkhBuHL/3VjK MiIve4u2pVV9mB3Z7IH+OWcz/H529HYYrKCZlk2Ow5Hi8Ea2rOosjA4N08HxZGLvyCeZpE NY5ly9SdBY39tx4EBXMqmEtFQzsfjgZWegRg2BvTLVubtn2wdiXWM1LkBSxec42qXXEJN9 /cNvjTzWPy8LzA4Ml3xfC6ZlrerCzpFXl3RNZde9yoK6InPgZvABu6TMNVJyrA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1759393240; 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=KI6k6bLNcOLzIU3YbD69fUb+FIIB0pn7dXMzcAxMxhE=; b=Fb9Y57WUBrzD++d7fq/JXtA8aAkzWokN5mU4kquX/X9irFDsjFQuiKcSv92psaVElbpOFK 8TzAsgZR3QUhdDu0EJ3Nj24ClH8Zwvo/leNw6bJFckboeYsqO9fK93BJqASyjp4ogc8Qlt E30cDbyvb43yRzHR+J1sRvp6e96PtIutsuVTqH2eWk92QFsNc/pGwmI3fXylhTxbg6zdti M0KXGwpYx2SDZ6eWA+W0eavs2N0fi0uRefIKuv2AL6hlbv67CFPeVUjIW/FAGN8HfST99n WSMByjQZHKVSPrZv4i7ExFORLd0f1d+ZtSBZNUGYEmF40geGxHm90ne3NN1LZQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1759393240; a=rsa-sha256; cv=none; b=t7RDmYcoeDGBx9yYwl+YYAd5THzaeBIyI783VjfJ6RzezcNxRG9Fs7FQaaPfH4PdoX5sTt zEfA4SkS8B/9zv3j+ZEPtVm9VuHw6Dw1IemWc2LoCCDOKnbITW4OY9TljE1B+hGMkE2dTX jAGv/lixD31APxSxfcA4w/cZz9JQhN75hGiX9+JZqssXk6uSmfb55FjBzRxmQjCckqjiyt bGXdk5Kyd9kuO7r3Tx1BUX0/o3gzcpejhqNeGu6NLtAl+Cf+Xy6SHbKTtDKRyeaA3Yn6kZ OZky1/l2C2MqN8X9roPewJp6GPg4mzenrY8Q+JXavt9iaD0p0LUrD5eyzHILMg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ccl9N3hx6zynt; Thu, 02 Oct 2025 08:20:40 +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 5928KekL023025; Thu, 2 Oct 2025 08:20:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5928Ketv023022; Thu, 2 Oct 2025 08:20:40 GMT (envelope-from git) Date: Thu, 2 Oct 2025 08:20:40 GMT Message-Id: <202510020820.5928Ketv023022@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= Subject: git: 76fd9309e55e - stable/15 - pwait: Fix timeout unit parser List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 76fd9309e55e93c0c998db16c26ab480e49887a2 Auto-Submitted: auto-generated The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=76fd9309e55e93c0c998db16c26ab480e49887a2 commit 76fd9309e55e93c0c998db16c26ab480e49887a2 Author: Dag-Erling Smørgrav AuthorDate: 2025-09-23 12:56:04 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2025-10-02 08:19:23 +0000 pwait: Fix timeout unit parser The timeout parser would check the first character after the number and ignore any subsequent ones. While here, switch to bool for booleans and fix some style nits. MFC after: 1 week Reviewed by: 0mp, markj Differential Revision: https://reviews.freebsd.org/D52612 (cherry picked from commit 3aac05f56620712744cb57d71a0ef42f8d8e3b52) --- bin/pwait/pwait.c | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/bin/pwait/pwait.c b/bin/pwait/pwait.c index 0fae22562607..a78c0bb84ca8 100644 --- a/bin/pwait/pwait.c +++ b/bin/pwait/pwait.c @@ -39,6 +39,7 @@ #include #include #include +#include #include #include #include @@ -48,7 +49,6 @@ static void usage(void) { - fprintf(stderr, "usage: pwait [-t timeout] [-ov] pid ...\n"); exit(EX_USAGE); } @@ -61,15 +61,15 @@ main(int argc, char *argv[]) { struct itimerval itv; struct kevent *e; - int oflag, tflag, verbose; - int i, kq, n, nleft, opt, status; - long pid; char *end, *s; double timeout; + long pid; + int i, kq, n, nleft, opt, status; + bool oflag, tflag, verbose; - oflag = 0; - tflag = 0; - verbose = 0; + oflag = false; + tflag = false; + verbose = false; memset(&itv, 0, sizeof(itv)); while ((opt = getopt(argc, argv, "ot:v")) != -1) { @@ -78,25 +78,31 @@ main(int argc, char *argv[]) oflag = 1; break; case 't': - tflag = 1; + tflag = true; errno = 0; timeout = strtod(optarg, &end); if (end == optarg || errno == ERANGE || timeout < 0) { errx(EX_DATAERR, "timeout value"); } - switch(*end) { - case 0: + switch (*end) { + case '\0': + break; case 's': + end++; break; case 'h': timeout *= 60; /* FALLTHROUGH */ case 'm': timeout *= 60; + end++; break; default: errx(EX_DATAERR, "timeout unit"); } + if (*end != '\0') { + errx(EX_DATAERR, "timeout unit"); + } if (timeout > 100000000L) { errx(EX_DATAERR, "timeout value"); } @@ -106,7 +112,7 @@ main(int argc, char *argv[]) (suseconds_t)(timeout * 1000000UL); break; case 'v': - verbose = 1; + verbose = true; break; default: usage(); @@ -134,7 +140,7 @@ main(int argc, char *argv[]) for (n = 0; n < argc; n++) { s = argv[n]; /* Undocumented Solaris compat */ - if (!strncmp(s, "/proc/", 6)) { + if (strncmp(s, "/proc/", 6) == 0) { s += 6; } errno = 0;