From: Sami Tolvanen <samitolvanen@google.com>
To: Matt Helsley <mhelsley@vmware.com>,
"Steven Rostedt (VMware)" <rostedt@goodmis.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Thomas Gleixner <tglx@linutronix.de>,
"Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com>,
Kees Cook <keescook@chromium.org>,
linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] recordmcount: support >64k sections
Date: Fri, 24 Apr 2020 12:18:32 -0700 [thread overview]
Message-ID: <20200424191832.GA231432@google.com> (raw)
In-Reply-To: <20200423214734.GB9040@rlwimi.vmware.com>
Hi Matt,
On Thu, Apr 23, 2020 at 02:47:34PM -0700, Matt Helsley wrote:
> > +static unsigned int get_shnum(Elf_Ehdr const *ehdr, Elf_Shdr const *shdr0)
>
> I noticed this returns an unsigned int ...
>
> > + Elf_Shdr *const shdr0 = (Elf_Shdr *)(old_shoff + (void *)ehdr);
> > + unsigned const old_shnum = get_shnum(ehdr, shdr0);
>
> While this is not explicitly called out as an unsigned int. Perhaps we
> could just make this and new_shnum explicit unsigned ints and then...
> > + if (!ehdr->e_shnum || new_shnum >= SHN_LORESERVE) {
> > + ehdr->e_shnum = 0;
> > + shdr0->sh_size = w(new_shnum);
> > + } else
> > + ehdr->e_shnum = w2(2 + w2(ehdr->e_shnum));
>
> If we make the unsigned int change proposed above can we reuse new_shnum
> here like so:
> ehdr->e_shnum = w2(new_shnum);
>
> So this if/else is doing the inverse of get_shnum(). I think the code
> could be cleaned up a little and prepare for moving to objtool by
> putting it in a helper function.
Sure, sounds good to me.
> > + for (relhdr = shdr0, k = nhdr; k; --k, ++relhdr) {
> > + if (relhdr->sh_type == SHT_SYMTAB)
> > + symtab = (void *)ehdr + relhdr->sh_offset;
> > + else if (relhdr->sh_type == SHT_SYMTAB_SHNDX)
> > + symtab_shndx = (void *)ehdr + relhdr->sh_offset;
> > +
> > + if (symtab && symtab_shndx)
> > + break;
> > + }
>
> Could you break this out into a helper function? find_symtab() maybe? Again, I think
> that helper would go away with conversion to objtool.
Agreed, this wouldn't be needed with libelf. I'll send v2 shortly.
Thanks for the review!
Sami
next prev parent reply other threads:[~2020-04-24 19:18 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-22 23:24 [PATCH] recordmcount: support >64k sections Sami Tolvanen
2020-04-23 0:05 ` Steven Rostedt
2020-04-23 18:47 ` Sami Tolvanen
2020-04-23 21:47 ` Matt Helsley
2020-04-24 19:18 ` Sami Tolvanen [this message]
2020-04-24 19:30 ` [PATCH v2] " Sami Tolvanen
2020-04-24 22:22 ` Matt Helsley
2020-06-16 18:03 ` Kees Cook
2020-06-16 18:38 ` Steven Rostedt
2020-06-16 18:45 ` Kees Cook
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200424191832.GA231432@google.com \
--to=samitolvanen@google.com \
--cc=gregkh@linuxfoundation.org \
--cc=keescook@chromium.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mhelsley@vmware.com \
--cc=naveen.n.rao@linux.vnet.ibm.com \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox