From: Ido Yariv <ido@wizery.com>
To: "Sjur Brændeland" <sjur.brandeland@stericsson.com>
Cc: "Ohad Ben-Cohen" <ohad@wizery.com>,
"Linus Walleij" <linus.walleij@linaro.org>,
linux-kernel@vger.kernel.org,
"Sjur Brændeland" <sjur@brendeland.net>
Subject: Re: [RFCv2 08/11] remoteproc: Refactor function rproc_elf_find_rsc_table
Date: Fri, 21 Dec 2012 04:18:39 +0200 [thread overview]
Message-ID: <20121221021839.GE28692@WorkStation.localnet> (raw)
In-Reply-To: <1355501220-4572-9-git-send-email-sjur.brandeland@stericsson.com>
Hi Sjur,
On Fri, Dec 14, 2012 at 05:06:57PM +0100, Sjur Brændeland wrote:
> Refatcor rproc_elf_find_rsc_table and split out the scanning
Small typo there.
> for the section header named resource table. This is done to
> prepare for loading firmware once.
>
> Signed-off-by: Sjur Brændeland <sjur.brandeland@stericsson.com>
...
> +static struct elf32_shdr *
> +find_rsc_shdr(struct device *dev, struct elf32_hdr *ehdr)
> {
> - struct elf32_hdr *ehdr;
> struct elf32_shdr *shdr;
> + int i;
> const char *name_table;
> - struct device *dev = &rproc->dev;
> struct resource_table *table = NULL;
> - int i;
> - const u8 *elf_data = fw->data;
> + const u8 *elf_data = (void *)ehdr;
>
> - ehdr = (struct elf32_hdr *)elf_data;
> + /* look for the resource table and handle it */
> shdr = (struct elf32_shdr *)(elf_data + ehdr->e_shoff);
> name_table = elf_data + shdr[ehdr->e_shstrndx].sh_offset;
>
> - /* look for the resource table and handle it */
> for (i = 0; i < ehdr->e_shnum; i++, shdr++) {
> int size = shdr->sh_size;
> int offset = shdr->sh_offset;
> @@ -249,12 +230,6 @@ rproc_elf_find_rsc_table(struct rproc *rproc, const struct firmware *fw,
>
> table = (struct resource_table *)(elf_data + offset);
>
> - /* make sure we have the entire table */
> - if (offset + size > fw->size) {
> - dev_err(dev, "resource table truncated\n");
> - return NULL;
> - }
> -
This should probably be kept in the internal function, since it
dereferences the table as well. Moreover, this function will also be
called from other function locations.
It might also be a good idea to verify the offset as well, not just the
size.
Thanks,
Ido.
next prev parent reply other threads:[~2012-12-21 2:26 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-14 16:06 [RFCv2 00/10] remoteproc: Support bi-directional vdev config space Sjur Brændeland
2012-12-14 16:06 ` [RFCv2 01/11] remoteproc: Code cleanup of resource parsing Sjur Brændeland
2012-12-14 16:06 ` [RFCv2 02/11] remoteproc: Move check on firmware name to rproc_add Sjur Brændeland
2012-12-14 16:06 ` [RFCv2 03/11] remoteproc: Set vring addresses in resource table Sjur Brændeland
2012-12-21 2:13 ` Ido Yariv
2013-01-15 15:07 ` Sjur BRENDELAND
2012-12-14 16:06 ` [RFCv2 04/11] remoteproc: Add state RPROC_LOADED Sjur Brændeland
2012-12-21 2:14 ` Ido Yariv
2013-01-15 15:08 ` Sjur BRENDELAND
2012-12-14 16:06 ` [RFCv2 05/11] remoteproc: Load firmware once Sjur Brændeland
2012-12-21 2:16 ` Ido Yariv
2012-12-21 12:02 ` Sjur BRENDELAND
2012-12-21 13:30 ` Ido Yariv
2012-12-21 14:04 ` Sjur BRENDELAND
2013-01-15 15:11 ` Sjur BRENDELAND
2012-12-14 16:06 ` [RFCv2 06/11] remoteproc: Add resource entry number to callbacks Sjur Brændeland
2012-12-14 16:06 ` [RFCv2 07/11] remoteproc: Register virtio devices after vring allocation Sjur Brændeland
2012-12-21 2:18 ` Ido Yariv
2012-12-21 12:20 ` Sjur BRENDELAND
2012-12-21 13:40 ` Ido Yariv
2012-12-21 13:50 ` Sjur BRENDELAND
2012-12-21 15:26 ` Ohad Ben-Cohen
2013-01-15 15:11 ` Sjur BRENDELAND
2012-12-14 16:06 ` [RFCv2 08/11] remoteproc: Refactor function rproc_elf_find_rsc_table Sjur Brændeland
2012-12-21 2:18 ` Ido Yariv [this message]
2013-01-15 15:11 ` Sjur BRENDELAND
2012-12-14 16:06 ` [RFCv2 09/11] remoteproc: Add operation to find resource table in memory Sjur Brændeland
2012-12-21 2:19 ` Ido Yariv
2013-01-15 15:13 ` Sjur BRENDELAND
2012-12-14 16:06 ` [RFCv2 10/11] remoteproc: Find resource table in device memory Sjur Brændeland
2012-12-21 2:20 ` Ido Yariv
2013-01-15 15:05 ` Sjur BRENDELAND
2012-12-14 16:07 ` [RFCv2 11/11] remoteproc: Support virtio config space Sjur Brændeland
2012-12-21 2:21 ` Ido Yariv
2013-01-15 15:14 ` Sjur BRENDELAND
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=20121221021839.GE28692@WorkStation.localnet \
--to=ido@wizery.com \
--cc=linus.walleij@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=ohad@wizery.com \
--cc=sjur.brandeland@stericsson.com \
--cc=sjur@brendeland.net \
/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