From nobody Wed May 27 22:09:33 2026 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 4gQkLV74lkz6fmBJ for ; Wed, 27 May 2026 22:09:38 +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 4gQkLV6SFvz3br1 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=1779919778; 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=HZao5VSdNosDSlziv50nGXSs0AujKpx8GLTPUTJ+BFqauN79l/XhyV45jmo7oyzzkTMCDS DRXT/ZjxQMlBDNBOv2/9adCJZ2gVAr6HXr5K5B9NzY/wAJZ/K9eHGiZRI3PjWpTgOi1gym D9MQKerBD2j1JmTrTn1cdOqpTYBB/xc04D0Oq7c0sjOdApeyY9uraOz0hLXGl8gX90x8Yq zL7udH5YqiKdHBlBAg4yWnblxBd8pG9ZGzuTlHsvJJ/R72O3xw7EefB41zKk39rIGJ4Me8 TInOTwWyneNjtJSY1IsSmkewOD+6n5b5V7lY4TBnROQaJhz3kz0uPPVi6VdC1Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779919778; a=rsa-sha256; cv=none; b=NyijQwqbhqi66ZlJWDZiAZ+EYQBkJyC7wDlz8U+Mgc2lusYOTbqaxYFUV0GQ5PNETm+e3m L9Irt7cL4s9UFLWRLeMOFI4TuumP3LTqQg1Y1BdjeZjF9Y1Cd+mO0q10vIFUj4dZ5sSW/c 8u8dkWkcl+ora/OITHt+fgfUiCfB3eXUsInctchMSXKNYtJ8j+D6sU0syQAJD9E28t8I7i HJLtE34tnZga99GIwo2DM960dgZYFhsmO0yXPdR2xZxrMBFECRKzsx9xjgqEtUpB0P1BFn 6COu5O9tU5AA6ogIf4C+YEEHmjDIVdV+2jLTzaaiarDALIhOUahPbwP9aNm+Tw== 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=1779919778; 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=NiP56fsn8ti/NeajkUaQiqBlen90IBekkcvEulQDrJRJMaS3Tq6sbQqAXpF04YGVP7tqQB 0TZc/5J3y41zDq9B1yr2+EGcMKuVlbBc9qfVkmc5P7WX/fcEoK3GQIIA/Rg5fYqpy9fMOw B0qTY0nRrwCHsdMk4UV3VS3+3wt1a5I1zAGUshLXEJpt5Z9hqReZ4nE0nWdimjJ6pfUrWc EMQBEHNC++Gpqb33lmhqMWXjOW0aMolImpNAME/6nlk84BiuNAIdlaneQIEI3JHX6EH5ZI ALBP2LLKCMe0Ipa+NOE6THSsv67x8sxKQ+lf4a13dxc2fLW3e04PODxM0unr6w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gQkLV5q6qz3HJ 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: 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 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() {