From nobody Wed May 27 22:09:33 2026 X-Original-To: dev-commits-src-branches@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 4gQkLW2hygz6fm8t for ; Wed, 27 May 2026 22:09:39 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gQkLV6mV5z3c4R for ; Wed, 27 May 2026 22:09:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779919779; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4dUoqWEiAs2281yQsVd8SvLx8JXeGay6dZ+s3sDN3hU=; b=UGxx07SbYR//PBjqyUw4OTQRn30zYQgetSBuXMBuCQ8FZlhv4LcUTmjonWfT+U472Uodyq QCfNYKonf4m+taG1nvPQDKrM2+ukpO8wsFNQepBoFRUrB0ydCEL6EblXZYrgSEvxaWm7Lk lQdbwBOuA07+fFuhRaeVcYuFNxmx5+JOywRM/IWNclt9UeKrohAonNO5k5VlC+yo/y/2dR XkLVAumN0DT0r1U5DAFPy93XgPB/AHMQdo2PzKj18eNBMKbU8HRd8pkVkizxrVaumSC9wV TqUQgduUYNltCN3/txTtLM/nVwuZm5Pu9lNaTsu9d45YORl7VSVenfqyot7Rlw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779919779; a=rsa-sha256; cv=none; b=dsH+1g3msj81qfEzugu8rNnHlHUL3K3DfOFW+obrZbf209jD4nJ736n2KYMpg0z0jZ8ZNq C3HTwZuzmd5EiahEbhIG+/ZvGHLIX6TvZ5a7DPfxgYPC4Kmannki9ahabLXOI44kJTV9iF Mj6DITqSrvdhpnYCt+ONWXzee8Fd2BXpemhgvfj+bv0KoHy4JU2oTtPP3CFxOTxLppH0tq wie5xc4U1EVWcHCbRo+sCqeQLOIIr/56UOAQjaS4a/GdWiKHNa4oC/suU/FJCxVUNaFENN i+NxB9GEN75LVhBy8U+enbASX1XsXqL/VHcFe/qSPo+LhLLkFPt2ReJBkz5/8w== 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=1779919779; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4dUoqWEiAs2281yQsVd8SvLx8JXeGay6dZ+s3sDN3hU=; b=T1B4Bp+l4I9fl8afl91DxFGkdUZwlkywhEwFjNsTO3RJQSOgD8VF04KtRX0QT3vGn3rvAH SukyAZZeTFftmsj7XdpRzisdPjew0uVE+vUAphzR0rb5Chd7J3yWaAeAdg2yx5i3X9njQJ Z0TeP6hLkUvF/sn7sd2GGk95F220ZYaWOsviIXltf50BJ3i1mRdSFQ517wDmUtWC/d321X 2cWd40F3RLsiuiblUzKxPShaR+P1HkvkPSnZ+gWhw58FJKhIPO8jRfnNAVWfwlskUULBOQ cAnNXNbGXzdTDmENSsNm4FUHEMNXNwRNyg2eedVdEhzntDua3/8Hl0CA8Cqajg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gQkLV5rFRz3HK for ; Wed, 27 May 2026 22:09:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 32083 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 27 May 2026 22:09:33 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: tzyt From: Enji Cooper Subject: git: 2018defe9b98 - stable/15 - syslogd: Fix ereregex property filters and add test List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ngie X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 2018defe9b98a378dbc98ab53c8d000e922fe0b8 Auto-Submitted: auto-generated Date: Wed, 27 May 2026 22:09:33 +0000 Message-Id: <6a176b9d.32083.39c9068f@gitrepo.freebsd.org> The branch stable/15 has been updated by ngie: URL: https://cgit.FreeBSD.org/src/commit/?id=2018defe9b98a378dbc98ab53c8d000e922fe0b8 commit 2018defe9b98a378dbc98ab53c8d000e922fe0b8 Author: tzyt AuthorDate: 2026-03-22 08:40:57 +0000 Commit: Enji Cooper CommitDate: 2026-05-27 22:09:07 +0000 syslogd: Fix ereregex property filters and add test This change fixes Bug 293879, where ereregex filters in syslogd did not handle alternation correctly. The issue appears to come from mixing up two different kinds of flags: syslogd's internal serialized filter flags in usr.sbin/syslogd/syslogd.h, and the regex compilation flags from include/regex.h. ereregex was storing REG_EXTENDED in cmp_flags, even though cmp_flags is meant to carry syslogd's own FILT_FLAG_* values for configuration serialization and reconstruction. REG_EXTENDED has the same bit value as FILT_FLAG_EXCLUDE, so the filter could be reconstructed with the wrong semantics. The fix stores FILT_FLAG_EXTENDED instead, allowing syslogd to correctly REG_EXTENDED when compiling the regex. A test was also added for both ereregex and !ereregex filters. PR: 293879 Signed-off-by: tzyt Fixes: 2567168dc4986 MFC after: 1 week Reviewed-by: markj, ngie Pull-Request: https://github.com/freebsd/freebsd-src/pull/2088 (cherry picked from commit 69042706604752f42072f422671a72c49343ac45) --- usr.sbin/syslogd/syslogd.c | 2 +- usr.sbin/syslogd/tests/syslogd_test.sh | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/usr.sbin/syslogd/syslogd.c b/usr.sbin/syslogd/syslogd.c index ee15fa70807d..3a446baf504b 100644 --- a/usr.sbin/syslogd/syslogd.c +++ b/usr.sbin/syslogd/syslogd.c @@ -2818,7 +2818,7 @@ prop_filter_compile(const char *cfilter) pfilter.cmp_type = FILT_CMP_REGEX; else if (strcasecmp(argv[1], "ereregex") == 0) { pfilter.cmp_type = FILT_CMP_REGEX; - pfilter.cmp_flags |= REG_EXTENDED; + pfilter.cmp_flags |= FILT_FLAG_EXTENDED; } else { dprintf("unknown cmp function"); goto error; diff --git a/usr.sbin/syslogd/tests/syslogd_test.sh b/usr.sbin/syslogd/tests/syslogd_test.sh index 1f235c476c49..253a26258959 100644 --- a/usr.sbin/syslogd/tests/syslogd_test.sh +++ b/usr.sbin/syslogd/tests/syslogd_test.sh @@ -238,6 +238,28 @@ prop_filter_body() syslogd_check_log_nomatch "prop1: FreeBSD" syslogd_check_log_nomatch "prop2: freebsd" syslogd_check_log "prop3: Solaris" + + printf ":msg,ereregex,\"substring1|substring2\"\nuser.debug\t${SYSLOGD_LOGFILE}\n" \ + > "${SYSLOGD_CONFIG}" + syslogd_reload + + syslogd_log -p user.debug -t "prop1" -h "${SYSLOGD_LOCAL_SOCKET}" "substring1" + syslogd_check_log "prop1: substring1" + syslogd_log -p user.debug -t "prop2" -h "${SYSLOGD_LOCAL_SOCKET}" "substring2" + syslogd_check_log "prop2: substring2" + syslogd_log -p user.debug -t "prop3" -h "${SYSLOGD_LOCAL_SOCKET}" "substring3" + syslogd_check_log_nomatch "prop3: substring3" + + printf ":msg,!ereregex,\"substring1|substring2\"\nuser.debug\t${SYSLOGD_LOGFILE}\n" \ + > "${SYSLOGD_CONFIG}" + syslogd_reload + + syslogd_log -p user.debug -t "prop1" -h "${SYSLOGD_LOCAL_SOCKET}" "substring1" + syslogd_check_log_nomatch "prop1: substring1" + syslogd_log -p user.debug -t "prop2" -h "${SYSLOGD_LOCAL_SOCKET}" "substring2" + syslogd_check_log_nomatch "prop2: substring2" + syslogd_log -p user.debug -t "prop3" -h "${SYSLOGD_LOCAL_SOCKET}" "substring3" + syslogd_check_log "prop3: substring3" } prop_filter_cleanup() {