Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Nov 2021 11:58:19 -0600
From:      Kyle Evans <kevans@freebsd.org>
To:        Shawn Webb <shawn.webb@hardenedbsd.org>
Cc:        Mark Johnston <markj@freebsd.org>, src-committers <src-committers@freebsd.org>,  "<dev-commits-src-all@freebsd.org>" <dev-commits-src-all@freebsd.org>, dev-commits-src-branches@freebsd.org
Subject:   Re: git: 68396709e73a - releng/12.3 - libctf: Improve check for duplicate SOU definitions in ctf_add_type()
Message-ID:  <CACNAnaF2OYsu1OEhB5FVnrxfwL423tFWgJ7kaVcMBnWyKPjs3Q@mail.gmail.com>
In-Reply-To: <20211122172544.a3wi636tajsnsfme@mutt-hbsd>
References:  <202111221634.1AMGYoK4064366@gitrepo.freebsd.org> <20211122172544.a3wi636tajsnsfme@mutt-hbsd>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Nov 22, 2021 at 11:25 AM Shawn Webb <shawn.webb@hardenedbsd.org> wrote:
>
> On Mon, Nov 22, 2021 at 04:34:50PM +0000, Mark Johnston wrote:
> > The branch releng/12.3 has been updated by markj:
> >
> > URL: https://cgit.FreeBSD.org/src/commit/?id=68396709e73a4cd392ffc06fde6bfa44d79118a7
> >
> > commit 68396709e73a4cd392ffc06fde6bfa44d79118a7
> > Author:     Mark Johnston <markj@FreeBSD.org>
> > AuthorDate: 2021-10-04 16:28:22 +0000
> > Commit:     Mark Johnston <markj@FreeBSD.org>
> > CommitDate: 2021-11-22 16:32:18 +0000
> >
> >     libctf: Improve check for duplicate SOU definitions in ctf_add_type()
> >
> >     When copying a struct or union from one CTF container to another,
> >     ctf_add_type() checks whether it matches an existing type in the
> >     destination container.  It does so by looking for a type with the same
> >     name and kind as the new type, and if one exists, it iterates over all
> >     members of the source type and checks whether a member with matching
> >     name and offset exists in the matched destination type.  This can
> >     produce false positives, for example because member types are not
> >     compared, but this is not expected to arise in practice.  If the match
> >     fails, ctf_add_type() returns an error.
> >
> >     The procedure used for member comparison breaks down in the face of
> >     anonymous struct and union members.  ctf_member_iter() visits each
> >     member in the source definition and looks up the corresponding member in
> >     the desination definition by name using ctf_member_info(), but this
> >     function will descend into anonymous members and thus fail to match.
> >     Fix the problem by introducing a custom comparison routine which does
> >     not assume member names are unique.  This should also be faster for
> >     types with many members; in the previous scheme, membcmp() would perform
> >     a linear scan of the desination type's members to perform a lookup by
> >     name.  The new routine steps through the members of both types in a
> >     single loop.
>
> Hey Mark,
>
> Out of curiosity, would commits to releng branches necessitate an EN?
>
> Thanks,
>

This is just the in-progress release branch, so not here, at least.



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