From nobody Sun Mar 29 03:44:04 2026 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 4fk0c95NgCz6XZ58 for ; Sun, 29 Mar 2026 03:44:09 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fk0c94P9fz40K0 for ; Sun, 29 Mar 2026 03:44:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1774755849; 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=TRzH7m5hrP8oosJYEwzpJdH7mNhJQLaZfW/JnQbxAF8=; b=AF4JHSAirC8WqI9ssLoKVgmtU7EdOBYqQ1Zw7Tm0ZdOK+O96Ud0U48eiRFSrhwPFgKKZJ0 xfnrtwlTJy3lqjw6aGvh5Hcde+3qovr5J5qnTDZzp6I6DAHMcIprEQ7haqsA2eu6Jq8sJY 0Bj2CzX9s+ms5W2qqWcVSpKMic+gBUw8+WSyLI3ykMzl0rrWckBTwoZGWoidMNGSwor0wD mL6+cGmu/3vSnbAPNRTtj9uloZ2KO2GmTCwMEzYWB6C5wZvAJDmjlKN5cssu/VlAV2mfEU 1eGllvR4ETb/cxD0KA8mbzu5cx4jbFzL1+hg16Os+hRMatPMrRCjv/dWuLDedQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1774755849; a=rsa-sha256; cv=none; b=ZAZtiDHzBS4+YEQ/h+9zoxgvZsCelwLn1U/LtcML0i6uQUp6DA7JhPOI48G22SJqmBbw22 Qy7F89stSkA1iXYa27O8xiLx9hwgP3OYFhuR33uTHT2BoVXXa4abYmVhZYPOSk0lgziawM YyysnMRRyJ98ABu84PpRzgD11ZwRtWhIzIFJf/LXBfihPn9nmVo35K8uCkzsa1RZuSfsAN YBb3U1qUQVCoUA4bR4DRbWC6Couio/EVM/VwMxBSDUetbugCaiHI5JhTndz8tjUGPnA50m Xc4vDQrIXuDyinhKWltCI/PyJ0QDobzqUY+j5ken14ChUFq4n3HIQZuEKZ6h2A== 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=1774755849; 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=TRzH7m5hrP8oosJYEwzpJdH7mNhJQLaZfW/JnQbxAF8=; b=kYS/Pu+S7npishlgwn1J0wCZ8bDX55Q5DaoR9AcrcsxVv/iBc1ua56uUhA+SUyVGlkXMkN ppqgxYSrezQnSWyzkExLd3cOnGOHyZoqfiQh9Lv/g/S1KWpeEeNR1fHEUbMYt2o35WY6Ub eN2GMpsJIqo004Qb5Zlm+u6n7x0s+Hz3sumtgWC4CFQy1sHCnQePx5tE4/YCZrtlQ2M36G OEPatacukYrniNFAq8oDwA8gougaTOySJq7ZZXurWIOyn7Y0EXFDcl+uyobX6wlk0F1YF6 72LubPlX5NLgDjzaej4ZIPoxUymDLRafCxVK4qOttAiZtGVQ2Rqk/2VG7Pjqqw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fk0c940BRzvth for ; Sun, 29 Mar 2026 03:44:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 33202 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sun, 29 Mar 2026 03:44:04 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Cc: tzyt From: Enji Cooper Subject: git: 690427066047 - main - syslogd: Fix ereregex property filters and add test 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: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org 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/main X-Git-Reftype: branch X-Git-Commit: 69042706604752f42072f422671a72c49343ac45 Auto-Submitted: auto-generated Date: Sun, 29 Mar 2026 03:44:04 +0000 Message-Id: <69c8a004.33202.a9e2b9c@gitrepo.freebsd.org> The branch main has been updated by ngie: URL: https://cgit.FreeBSD.org/src/commit/?id=69042706604752f42072f422671a72c49343ac45 commit 69042706604752f42072f422671a72c49343ac45 Author: tzyt AuthorDate: 2026-03-22 08:40:57 +0000 Commit: Enji Cooper CommitDate: 2026-03-29 03:43:42 +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 --- 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 dcc74b1a93c1..59cb56fd5970 100644 --- a/usr.sbin/syslogd/syslogd.c +++ b/usr.sbin/syslogd/syslogd.c @@ -2820,7 +2820,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() {