From nobody Sun Nov 26 04:45:20 2023 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 4SdGNw6X1pz50ppr; Sun, 26 Nov 2023 04:45:20 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SdGNw5xH9z3VRJ; Sun, 26 Nov 2023 04:45:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700973920; 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=IQ9jvGRV8Q96sypdqXPozoBrA14NoxWlcZwWY7I7ksY=; b=hRXXyn4adOEWj7GoUVeZ+GzPdjafS/lFWYBoIUjS4r4759dUgt3RUaxqgYpOXXv169eZov zUONS1nSMscobZbZDVWJztkue02XIs4JuZzX0R1ZSMcZTB/8cGhkhl0o4UX9OClx0Dhm2u ofQYEMvYgVX/Dox+XP/xd8QC8aPmxeTIu0EMfqwBiCBp8BXJ4mcHlY4itUFiYIQeUmVUu6 fwfkbtgvYJpoLfA08/vvlgTAjlps3sDKrCtoWcN9VuFGNHagJdcR/0LY8TEGcvLn2/vM2J lwJV87iS3xDppbQLkwF7CdvCp4pxM5w4PEewZ/LmDyZk1G3FhhhSiA/tNffA3A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700973920; 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=IQ9jvGRV8Q96sypdqXPozoBrA14NoxWlcZwWY7I7ksY=; b=YmiMw8uzYB9C6efdom542MHhrVJY722dHKWCOpNHKXoP2gPWG2DSfXoQTZRVcDsvPeOhK0 lgF3hualYVfpcXzXjE9y2y1P9vTNfXyLl6E+cOKC/uv2sm+E2Dg2pldoWAFzXMBUdEZMON bGga7aXHfx+NkIJPtNlttEBMGempUgQ/Yjg0/N5L3ydj660dIYJKY9/Qux8BTvt7mIEzfQ E21o/ulqTQu7/Kc0xNORW5g/101/ebD7jBfhLfUSKmUycrVZyMui2Nap/4OzoBAjvbLHIh 5Ouzf0K4tot7F+TNsiGG4ABKzZou2EiI78Ksyrc2MpmQT/FI8hsnMgdghDJ8qg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700973920; a=rsa-sha256; cv=none; b=gwLCmqIlguleMZ9YpZKLwUsXtSEba5U2xCzFgfco24gPrvP1wAUHZwoIvXXjcFefkwS/py bsLG7XJR312Rq66v0XVMlnoh0ARE11UVZHrdyQ6RkwvI1sLKZyzvAhAoE6BWPVGUOyckZi fXSRkLCJgWA0NJZQ5TpbzR5fUwuGL1UatLFKCI+nfmrLOcWw3ak10ciK2VumF/UqE1j9ix VQCDtbhuKLMoPckTY/T8Z2icQslxU+0cGL5kP55Wx/RtGjIfM77m2SF8QOOkg0FvFnrkZn DsrNGSd2Hz1K6QElN6ChUwCmtoIM4H9OeMXHSQu8BiR3dHi7gbZ9cD6njB4XCg== 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 4SdGNw51RTzhqZ; Sun, 26 Nov 2023 04:45:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AQ4jKET095048; Sun, 26 Nov 2023 04:45:20 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AQ4jKg2095045; Sun, 26 Nov 2023 04:45:20 GMT (envelope-from git) Date: Sun, 26 Nov 2023 04:45:20 GMT Message-Id: <202311260445.3AQ4jKg2095045@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kyle Evans Subject: git: e4967d4d48b0 - main - lockf: switch to strtonum() for parsing timeout 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: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kevans X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e4967d4d48b0a7d873e4f778c0a6e560e09d4dc3 Auto-Submitted: auto-generated The branch main has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=e4967d4d48b0a7d873e4f778c0a6e560e09d4dc3 commit e4967d4d48b0a7d873e4f778c0a6e560e09d4dc3 Author: Kyle Evans AuthorDate: 2023-11-26 04:27:11 +0000 Commit: Kyle Evans CommitDate: 2023-11-26 04:41:05 +0000 lockf: switch to strtonum() for parsing timeout Convert waitsec to a long long to be able to hold the full domain of alarm(3) timeout on all platforms, and let strtonum(3) handle the input validation. strtonum(3) also happens to provide a neater interface for error handling, and it already includes our pre-existing empty input check. Sponsored by: Klara, Inc. --- usr.bin/lockf/lockf.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/usr.bin/lockf/lockf.c b/usr.bin/lockf/lockf.c index db45f7a6b2e7..dd02bf2a5417 100644 --- a/usr.bin/lockf/lockf.c +++ b/usr.bin/lockf/lockf.c @@ -92,7 +92,8 @@ fdlock_implied(const char *name, long *ofd) int main(int argc, char **argv) { - int ch, flags, silent, status, waitsec; + int ch, flags, silent, status; + long long waitsec; pid_t child; union lock_subject subj; @@ -112,9 +113,10 @@ main(int argc, char **argv) break; case 't': { - char *endptr; - waitsec = strtol(optarg, &endptr, 0); - if (*optarg == '\0' || *endptr != '\0' || waitsec < 0) + const char *errstr; + + waitsec = strtonum(optarg, 0, UINT_MAX, &errstr); + if (errstr != NULL) errx(EX_USAGE, "invalid timeout \"%s\"", optarg); } @@ -181,7 +183,7 @@ main(int argc, char **argv) sigemptyset(&act.sa_mask); act.sa_flags = 0; /* Note that we do not set SA_RESTART. */ sigaction(SIGALRM, &act, NULL); - alarm(waitsec); + alarm((unsigned int)waitsec); } /* * If the "-k" option is not given, then we must not block when