From nobody Mon Jun 30 15:00:50 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 4bW8VW2Z5zz60ZQ7; Mon, 30 Jun 2025 15:00:51 +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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4bW8VW10Vdz3DPp; Mon, 30 Jun 2025 15:00:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1751295651; 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=humh2lk5eqdYSdtahnNxFUqmj4MZyRw4kJxvTaIv5os=; b=GHoXP2tW43VbsNcYKqlg92xWOvGGaZGvHw4GUJhWfORsmVo/w8NvqlV9p1WH6XWP373ktP TO4/iHIkzx42PM985FUrUtGHUIAnu8hKKJWwrfRSJHRRZxF3Dfy/eT1efo4nq5bDe3AFYs u/bTr2nbjgDnxfBedXfDnSvAbAuGTpi/Etvi2KchLQz0ZEVSAY/A5DwtaS/P5VhPvIhhGS 37ViaAfBDHVtb+x8ZTrHMAVojPE4otMiNlAPpzYkwUbIvD3fLkeeWaQcW+2CXcAaavnuzd 2IhFjEFiV3oAVr7/+02RAcoopIdX9TKJYBwb2r8vPCqKd9pj4kvKCjjz9Rtb4A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1751295651; 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=humh2lk5eqdYSdtahnNxFUqmj4MZyRw4kJxvTaIv5os=; b=ZW/+u+WH+UK7Avf8DaQOSnYjfkV2JBRJNO6BrFo3VqYqEkF/LHu5/cIyB6hNeuNU9vJni0 kyLhqkVwqMJBFLE3Hf+IQgYt0DbWORMjbQ4IxR9BZdCn6BX++5MzbOlvC9RsRpeFD7NJpy 34dUTsYUz04CLZ5jc6kbXo4cKhhmXlIMpK2iIFze26Wm/E0hqKCUxyDrUjiNQqc7QXkrHQ WBWjnguxx+Vmo2U/TKFuWJ822r150WEJNiB3OzIuecYdp3G4mgeq0w9nBNlPu7q/g9Kiks hbgJBZEarl9jM9mVgP/+d1zdlpj/l9ja6Gj3j2yvtcx/mmrBT0pIB/EHmBIepw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1751295651; a=rsa-sha256; cv=none; b=x7cavq7lDo53JaiAuKm5zg3ZZN6x+jb1tVzklgSnPgAOfAXiWPHlCxJMhC6WT9SsT5ylrm HKoYMvR9z2F2EI/lsuvFj+KfAcMOtR4DwJszwaFb7f2rBBZHTre9XPTjXXsySuBkFX+Eox WFFTkZc5QA16QvFQUyH69iZOg4NLWuYawGLHVypcbz8Wb3TvX9y7D7ZLfLnGSCsZrVwVPe 9I5c/Yyr/C25LkObDCCi02mVUFKOQ7T3zPdx9V/NeKbCjQO4l9RGNnALcDlCZkAzy9U5iQ YJrZZzsUn2vmlsyUE707ybQpBOzKCyMDRUlMnWKC4QyRv3gLKDaXtGFcpZe+/g== 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 4bW8VW0X5Kz17k7; Mon, 30 Jun 2025 15:00:51 +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 55UF0oSv047508; Mon, 30 Jun 2025 15:00:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 55UF0ox1047505; Mon, 30 Jun 2025 15:00:50 GMT (envelope-from git) Date: Mon, 30 Jun 2025 15:00:50 GMT Message-Id: <202506301500.55UF0ox1047505@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kristof Provost Subject: git: 7b82e3620367 - main - pfctl: Use strtonum in host() 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: kp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 7b82e362036763498734ec6ceb74f512c2c05d81 Auto-Submitted: auto-generated The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=7b82e362036763498734ec6ceb74f512c2c05d81 commit 7b82e362036763498734ec6ceb74f512c2c05d81 Author: Kristof Provost AuthorDate: 2025-06-27 09:48:22 +0000 Commit: Kristof Provost CommitDate: 2025-06-30 15:00:27 +0000 pfctl: Use strtonum in host() This is simpler than checking three cases for `q' and gives nicer error messages. While here, use `v6mask' as maximum netmask instead of hardcoding it. OK sashan Obtained from: OpenBSD, kn , e351e6cba3 Sponsored by: Rubicon Communications, LLC ("Netgate") --- sbin/pfctl/pfctl_parser.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/sbin/pfctl/pfctl_parser.c b/sbin/pfctl/pfctl_parser.c index 89960efa3ca1..71731652e4af 100644 --- a/sbin/pfctl/pfctl_parser.c +++ b/sbin/pfctl/pfctl_parser.c @@ -1803,13 +1803,14 @@ struct node_host * host(const char *s, int opts) { struct node_host *h = NULL; - int mask, v4mask, v6mask, cont = 1; - char *p, *q, *ps; + int mask, v4mask, v6mask = 128, cont = 1; + char *p, *ps; + const char *errstr; if ((p = strrchr(s, '/')) != NULL) { - mask = strtol(p+1, &q, 0); - if (!q || *q || mask > 128 || q == (p+1)) { - fprintf(stderr, "invalid netmask '%s'\n", p); + mask = strtonum(p+1, 0, v6mask, &errstr); + if (errstr) { + fprintf(stderr, "netmask is %s: %s\n", errstr, p); return (NULL); } if ((ps = malloc(strlen(s) - strlen(p) + 1)) == NULL)