lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 6 Oct 2015 00:24:59 +0200 From: Olli Salonen <olli.salonen@....fi> To: Laura Abbott <labbott@...oraproject.org> Cc: Antti Palosaari <crope@....fi>, Mauro Carvalho Chehab <mchehab@....samsung.com>, linux-media <linux-media@...r.kernel.org>, linux-kernel@...r.kernel.org, stable@...nel.org Subject: Re: [PATCH 2/2] si2157: Bounds check firmware Hi Laura, While the patch itself does what it says, the return code for the si2157_init will be 0 even if there's a faulty firmware file. Wouldn't it be better to set the return code as -EINVAL like done a few lines earlier in the code (see below)? if (fw->size % 17 != 0) { dev_err(&client->dev, "firmware file '%s' is invalid\n", fw_name); ret = -EINVAL; goto err_release_firmware; } Cheers, -olli On 30 September 2015 at 02:10, Laura Abbott <labbott@...oraproject.org> wrote: > When reading the firmware and sending commands, the length > must be bounds checked to avoid overrunning the size of the command > buffer and smashing the stack if the firmware is not in the > expected format. Add the proper check. > > Cc: stable@...nel.org > Signed-off-by: Laura Abbott <labbott@...oraproject.org> > --- > drivers/media/tuners/si2157.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/media/tuners/si2157.c b/drivers/media/tuners/si2157.c > index 5073821..ce157ed 100644 > --- a/drivers/media/tuners/si2157.c > +++ b/drivers/media/tuners/si2157.c > @@ -166,6 +166,10 @@ static int si2157_init(struct dvb_frontend *fe) > > for (remaining = fw->size; remaining > 0; remaining -= 17) { > len = fw->data[fw->size - remaining]; > + if (len > SI2157_ARGLEN) { > + dev_err(&client->dev, "Bad firmware length\n"); > + goto err_release_firmware; > + } > memcpy(cmd.args, &fw->data[(fw->size - remaining) + 1], len); > cmd.wlen = len; > cmd.rlen = 1; > -- > 2.4.3 > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists