[PATCH v4 15/22] objtool: Prevent kCFI hashes from being decoded as instructions
Song Liu
song at kernel.org
Tue Aug 11 21:37:04 PDT 2026
On Tue, Aug 11, 2026 at 5:30 PM Josh Poimboeuf <jpoimboe at kernel.org> wrote:
>
> On Tue, Aug 11, 2026 at 04:58:05PM -0700, Song Liu wrote:
> > On Sat, Aug 8, 2026 at 4:18 PM Josh Poimboeuf <jpoimboe at kernel.org> wrote:
> > [...]
> > >
> > > +/*
> > > + * ARM64 mapping symbols ($d, $x, $a, __pi_$d, etc) which mark transitions
> > > + * between code and data.
> > > + */
> > > +static inline bool is_mapping_sym(struct symbol *sym)
> > > +{
> > > + return is_notype_sym(sym) && strchr(sym->name, '$');
> > > +}
> > > +
> > > +static inline bool is_data_mapping_sym(struct symbol *sym)
> > > +{
> > > + const char *dollar;
> > > +
> > > + if (!is_mapping_sym(sym))
> > > + return false;
> > > +
> > > + dollar = strchr(sym->name, '$');
> > > + return dollar && dollar[1] == 'd';
> >
> > nit: is_data_mapping_sym() calls strchr() twice. Maybe we can
> > optimize it by eliminating a strchr()?
>
> I suppose it's a bit funky, but the compiler CSEs it, so it's harmless.
I see. Then this should be fine.
Thanks!
Acked-by: Song Liu <song at kernel.org>
More information about the linux-arm-kernel
mailing list