From nobody Sun Oct 1 04:46:17 2023 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 4Rys3s52pvz4wH8l; Sun, 1 Oct 2023 04:46:17 +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 4Rys3s4QMsz3Dbn; Sun, 1 Oct 2023 04:46:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1696135577; 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=xk+upWZE07s7AiiIIl1rlXC/RbSdSeny5MFmjFg9hT8=; b=O3yITLXhDkKW5j9Un/rHf1YOS+n4sIKRz4n+b5VVUGN6PC4lBomrO/E3NGWP6Ijhq/zPwt BLxKNwuNYCdcbHW5wu+Ypvbf8qZviUNHNl642IZwHoprYffdN+DIwd9Mu+JTcgkUtlFREA gkK7Vz/b7PrMhdKYox+uu5YlGgCHhGplgD41bPRkIzedevq71H8BCOPVNaK7o7q5mOZQYW uDBID/Mm8hCQjwG4P7M1VATSjSGPm5ARPO2j6k/1cHMpRzduGnNdxH+6E3RK7HHImbcEXQ fJ8e0T/1aZAU1yfJs/ThERF+O5t+eZuO99f0FAHxJCbQLcHrdJQlnbbqOB8S8w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1696135577; a=rsa-sha256; cv=none; b=B+CsaEkZ0rPCzJbWy+RZEvkwee6k9Zk3LenxiNAzYO/4t/8e1eUx5AS66L5qcLj0a4djtO 2qhhIDIvtW8Lu1Po5xPDdTlVcNugZ45R8Q1lui6PKCmCKkoXisxdBmP88lhMWrdhLY1Cr9 hPMVwgJLaMtMfOPMloS1bl42kLpOQQDb0gv2pzzrWR+BsxHbuNfkN4WPcMHiIy8doJg8MO YGye9N69JtZ3Bjinjmc47++zHV7VFnmb/cz4u5rbP3FjRvSb1q1/PPpI6YRoBz2iNf/dIV uMObcHc0KJN+OWAKjyFGDXfq2eRVQFuE1+r0fWlnI2wp72Nhgr7HR3W54OlSGg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1696135577; 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=xk+upWZE07s7AiiIIl1rlXC/RbSdSeny5MFmjFg9hT8=; b=ni2bE9C2COh//XyscLjYIP8VVYHR5KiPViExL4X977ZWMC1QoHoj96Pvr4T9wMYFGCDAVo zUN9eAxf9usIGS5uGEzaauMD7RJ13ryvQXs9+O7GWAuZtt2fFaFqj2gerYu4PT0T7ZQrfm DcGbrg5N7EUF1lDwuNas185erJO2tFUDPWBxP5JO3KLwLbda2tgfZCFltUwGOp5T+r9UkV r5iOabJ+JWNYjsJMHjZDJso7JVWBK/J8dOmjAYJ8S6Od/gcVsLpZqCD6+viwJJyrI5FBvU 6Gmy3S25ek1lh/fBEElMR3zRKzjBRqC2T9eKiZb0HiMZUIbqrIl7GUC7WCpUpQ== 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 4Rys3s3Tq4z268; Sun, 1 Oct 2023 04:46:17 +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 3914kHtg026926; Sun, 1 Oct 2023 04:46:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3914kHPQ026923; Sun, 1 Oct 2023 04:46:17 GMT (envelope-from git) Date: Sun, 1 Oct 2023 04:46:17 GMT Message-Id: <202310010446.3914kHPQ026923@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kyle Evans Subject: git: 408daf2caa92 - releng/14.0 - regcomp: use unsigned char when testing for escapes 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: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@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/releng/14.0 X-Git-Reftype: branch X-Git-Commit: 408daf2caa9273b1cbdc8223a3da6e179e922fc2 Auto-Submitted: auto-generated The branch releng/14.0 has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=408daf2caa9273b1cbdc8223a3da6e179e922fc2 commit 408daf2caa9273b1cbdc8223a3da6e179e922fc2 Author: Christos Zoulas AuthorDate: 2023-08-30 20:37:24 +0000 Commit: Kyle Evans CommitDate: 2023-10-01 04:46:02 +0000 regcomp: use unsigned char when testing for escapes - cast GETNEXT to unsigned where it is being promoted to int to prevent sign-extension (really it would have been better for PEEK*() and GETNEXT() to return unsigned char; this would have removed a ton of (uch) casts, but it is too intrusive for now). - fix an isalpha that should have been iswalpha PR: 264275, 274032 Reviewed by: kevans, eugen (previous version) Approved by: re (gjb) Obtained from: NetBSD (cherry picked from commit 3fb80f1476c7776f04ba7ef6d08397cef6abcfb0) (cherry picked from commit 56b09feb23d98fcd0c4aed8d4f907a5a2f6b5ea9) --- lib/libc/regex/regcomp.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/libc/regex/regcomp.c b/lib/libc/regex/regcomp.c index 791755ceb14d..42fa1b99e58e 100644 --- a/lib/libc/regex/regcomp.c +++ b/lib/libc/regex/regcomp.c @@ -828,10 +828,10 @@ p_simp_re(struct parse *p, struct branchc *bc) handled = false; assert(MORE()); /* caller should have ensured this */ - c = GETNEXT(); + c = (uch)GETNEXT(); if (c == '\\') { (void)REQUIRE(MORE(), REG_EESCAPE); - cc = GETNEXT(); + cc = (uch)GETNEXT(); c = BACKSL | cc; #ifdef LIBREGEX if (p->gnuext) { @@ -992,7 +992,7 @@ p_count(struct parse *p) int ndigits = 0; while (MORE() && isdigit((uch)PEEK()) && count <= DUPMAX) { - count = count*10 + (GETNEXT() - '0'); + count = count*10 + ((uch)GETNEXT() - '0'); ndigits++; } @@ -1302,7 +1302,7 @@ may_escape(struct parse *p, const wint_t ch) if ((p->pflags & PFLAG_LEGACY_ESC) != 0) return (true); - if (isalpha(ch) || ch == '\'' || ch == '`') + if (iswalpha(ch) || ch == '\'' || ch == '`') return (false); return (true); #ifdef NOTYET