Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 Jun 2023 22:29:34 GMT
From:      Warner Losh <imp@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 21c32cebf81a - main - ifconfig: skip calling fnmatch once the result no longer matters
Message-ID:  <202306272229.35RMTYFQ031764@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by imp:

URL: https://cgit.FreeBSD.org/src/commit/?id=21c32cebf81aa763771607ba3d7cc71b9eaa3fa1

commit 21c32cebf81aa763771607ba3d7cc71b9eaa3fa1
Author:     Alfonso Gregory <gfunni234@gmail.com>
AuthorDate: 2023-06-27 22:18:55 +0000
Commit:     Warner Losh <imp@FreeBSD.org>
CommitDate: 2023-06-27 22:28:44 +0000

    ifconfig: skip calling fnmatch once the result no longer matters
    
    Because fnmatch has no side effects, we can safely avoid calling fnmatch
    if the end result does not matter anyway (the compiler cannot see this,
    so it calls fnmatch in the event it has side-effects).
    
    Reviewed by: imp
    Pull Request: https://github.com/freebsd/freebsd-src/pull/747
---
 sbin/ifconfig/ifconfig.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/sbin/ifconfig/ifconfig.c b/sbin/ifconfig/ifconfig.c
index 5d789795e636..b26fbaf82776 100644
--- a/sbin/ifconfig/ifconfig.c
+++ b/sbin/ifconfig/ifconfig.c
@@ -910,11 +910,11 @@ group_member(const char *ifname, const char *match, const char *nomatch)
 	matched = false;
 	nomatched = true;
 	for (ifg = ifgr.ifgr_groups; ifg && len >= sizeof(*ifg); ifg++) {
-		len -= sizeof(struct ifg_req);
-		if (match)
-			matched |= !fnmatch(match, ifg->ifgrq_group, 0);
-		if (nomatch)
-			nomatched &= fnmatch(nomatch, ifg->ifgrq_group, 0);
+		len -= sizeof(*ifg);
+		if (match && !matched)
+			matched = !fnmatch(match, ifg->ifgrq_group, 0);
+		if (nomatch && nomatched)
+			nomatched = fnmatch(nomatch, ifg->ifgrq_group, 0);
 	}
 	free(ifgr.ifgr_groups);
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202306272229.35RMTYFQ031764>