From nobody Thu Oct 2 08:20:56 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 4ccl9h3nLcz69KqM; Thu, 02 Oct 2025 08:20:56 +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 4ccl9h1994z4NMG; Thu, 02 Oct 2025 08:20:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1759393256; 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=O9+WufHkbecKSSCVGM/PCR/Np2MoqoGmFDo2SCga79k=; b=bE4q9n4LQ3p4t4MHBJN5tN1Y0tecz1H3P7nZOBhfsK0huG1yjSg0PDZfx5XKEhStvRZNy5 OAmRGhI1xlnrfrz31I3O4tH4PIanpjjGfJc3+n4/j0dmhC0Pt996hrFeXDPoA+vmklZHUx KfTfFZhqmbeEApZyHLdkMtlxXVJG4te1GCRjxFqlDFXkQv9wYfxWwmnT9+wVchgVDYWdPF JAuxV5Cr7clAm1+VZon8vXFjAamdqKTXrFnbJSqeNyK1wT7g65fmdcgVsOUOn07qAAS5mt h+NevjOWTnlYLupuJGzt+L+tNgVq0kf8l3Cq5m5XGIWmrYGb+Mztsc7kmI/6Rw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1759393256; 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=O9+WufHkbecKSSCVGM/PCR/Np2MoqoGmFDo2SCga79k=; b=ppyaGkmYIS8JXIcDYTnI+0AmYkZyoiNShv39WTvtn1YdBjoFd/sTcVJoMHcQSVXRrQzsGL UF/1Lc6Xkjm00p3tP9ttwoJeEMV4c1Sc4K5q3P5NmJLvT3nB5AqjLseEFV0uIed2tlTohp K7Ng9rkljHVLQ0TDRxd9uuFiCutEO81K4Iay16hpalWxbOjYXwsueJUeKwAskPDdwrgMQR 2L6iV8n1VgxsqHVd5l78V6LeU1F89O6o6PDAu0LFMoCCtbq2/X3qJ61ipSg/VTECPOb/2m s9ZUX12xmQ/Zx4619qnYCj2et0fL3czg/cU0YJ//mIxfzYNUiCm1CFNtDcIRuA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1759393256; a=rsa-sha256; cv=none; b=IXlN4uXQNc51jRfS/pVIsL0Ti2go+/GUq+PbL9aiUFkI5FRXwcGO+LAB4sjMMlZ5ut3/cf pAGfsX3ao4jt6EuSjsKnoIO/Dw8tM4f0kTGxb3Wcg9lvnAt8HjrkNI1fPN4JJbmK2WtuNd UEbZ1rtcVRRpalRs38C3v5XmF25i8EZo+YDEPxIohizb5JnVpfu/eqfGIYI97zFLFJAh8n uM2/UQVqAkev+ygVKJfKCO0v94cvdJ2GPSBFFkD9ZAl3QVzn5WXs02wlmkVmME+rLombQa F3D38Bn/QuEF56z7RbEVQ9bHKE9K9fGTsds/b1YD1foAAU+tX4NsuN4C8HW8Fg== 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 4ccl9h0cv1z10lh; Thu, 02 Oct 2025 08:20:56 +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 5928KuXf023684; Thu, 2 Oct 2025 08:20:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5928KuEN023681; Thu, 2 Oct 2025 08:20:56 GMT (envelope-from git) Date: Thu, 2 Oct 2025 08:20:56 GMT Message-Id: <202510020820.5928KuEN023681@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: 278c371fd2db - stable/14 - 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/14 X-Git-Reftype: branch X-Git-Commit: 278c371fd2db6a534d5a553d5eb18e53e14b2a8d Auto-Submitted: auto-generated The branch stable/14 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=278c371fd2db6a534d5a553d5eb18e53e14b2a8d commit 278c371fd2db6a534d5a553d5eb18e53e14b2a8d Author: Dag-Erling Smørgrav AuthorDate: 2025-09-23 12:56:04 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2025-10-02 07:28:58 +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 c3adb2a8b741..b402328849ef 100644 --- a/bin/pwait/pwait.c +++ b/bin/pwait/pwait.c @@ -40,6 +40,7 @@ #include #include #include +#include #include #include #include @@ -49,7 +50,6 @@ static void usage(void) { - fprintf(stderr, "usage: pwait [-t timeout] [-ov] pid ...\n"); exit(EX_USAGE); } @@ -62,15 +62,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) { @@ -79,25 +79,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"); } @@ -107,7 +113,7 @@ main(int argc, char *argv[]) (suseconds_t)(timeout * 1000000UL); break; case 'v': - verbose = 1; + verbose = true; break; default: usage(); @@ -135,7 +141,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;