From: Kevin Corry <corryk@us.ibm.com>
To: Horst von Brand <vonbrand@inf.utfsm.cl>,
Joe Thornber <joe@fib011235813.fsnet.co.uk>
Cc: Linus Torvalds <torvalds@transmeta.com>,
Linux Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 3/8] dm: prevent possible buffer overflow in ioctl interface
Date: Thu, 27 Feb 2003 08:36:53 -0600 [thread overview]
Message-ID: <03022708365304.05199@boiler> (raw)
In-Reply-To: <03022708205903.05199@boiler>
On Thursday 27 February 2003 08:20, Kevin Corry wrote:
> On Wednesday 26 February 2003 15:04, Horst von Brand wrote:
> > Joe Thornber <joe@fib011235813.fsnet.co.uk> said:
> > > Use the correct size for "name" in register_with_devfs().
> > >
> > > During Al Viro's devfs cleanup a few versions ago, this function was
> > > rewritten, and the "name" string added. The 32-byte size is not large
> > > enough to prevent a possible buffer overflow in the sprintf() call,
> > > since the hash cell can have a name up to 128 characters.
> > >
> > > [Kevin Corry]
> > >
> > > --- diff/drivers/md/dm-ioctl.c 2003-02-26 16:09:42.000000000 +0000
> > > +++ source/drivers/md/dm-ioctl.c 2003-02-26 16:09:52.000000000 +0000
> > > @@ -173,7 +173,7 @@
> > > */
> > > static int register_with_devfs(struct hash_cell *hc)
> > > {
> > > - char name[32];
> > > + char name[DM_NAME_LEN + strlen(DM_DIR) + 1];
> >
> > This either makes a large name array or generates a possibly huge array
> > at runtime (bad if your stack is < 8KiB).
>
> Would this be better?
As Joe pointed out to me, that should have been:
--- linux-2.5.60a/drivers/md/dm-ioctl.c 2003/02/13 16:43:26
+++ linux-2.5.60b/drivers/md/dm-ioctl.c 2003/02/27 14:35:20
@@ -173,14 +173,18 @@
*/
static int register_with_devfs(struct hash_cell *hc)
{
- char name[DM_NAME_LEN + strlen(DM_DIR) + 1];
struct gendisk *disk = dm_disk(hc->md);
+ char *name = kmalloc(DM_NAME_LEN + strlen(DM_DIR) + 1);
+ if (!name) {
+ return -ENOMEM;
+ }
sprintf(name, DM_DIR "/%s", hc->name);
devfs_register(NULL, name, DEVFS_FL_CURRENT_OWNER,
disk->major, disk->first_minor,
S_IFBLK | S_IRUSR | S_IWUSR | S_IRGRP,
&dm_blk_dops, NULL);
+ kfree(name);
return 0;
}
next prev parent reply other threads:[~2003-02-27 14:30 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-02-26 17:05 device-mapper patchset 2.5.63-dm-1 Joe Thornber
2003-02-26 17:08 ` [PATCH 1/8] dm: ioctl interface wasn't dropping a table reference Joe Thornber
2003-02-26 17:08 ` [PATCH 2/8] dm: __LOW macro fix no. 1 Joe Thornber
2003-02-26 17:09 ` [PATCH 3/8] dm: prevent possible buffer overflow in ioctl interface Joe Thornber
2003-02-26 21:04 ` Horst von Brand
2003-02-27 14:20 ` Kevin Corry
2003-02-27 14:36 ` Kevin Corry [this message]
2003-02-27 16:25 ` Roland Dreier
2003-02-27 16:34 ` Kevin Corry
2003-02-27 22:05 ` Kevin Corry
2003-02-26 17:10 ` [PATCH 4/8] dm: deregister the misc device before removing /dev/mapper Joe Thornber
2003-02-26 17:11 ` [PATCH 5/8] dm: bug in error path for unknown target type Joe Thornber
2003-02-26 17:11 ` [PATCH 6/8] dm: allow slashes in dm device names Joe Thornber
2003-02-26 17:38 ` Greg KH
2003-02-26 18:17 ` Kevin Corry
2003-02-26 18:20 ` Greg KH
2003-02-26 17:12 ` [PATCH 7/8] dm: __LOW macro fix no. 2 Joe Thornber
2003-02-26 18:14 ` Greg KH
2003-02-27 8:55 ` Joe Thornber
2003-02-27 9:55 ` Joe Thornber
2003-02-27 16:17 ` Horst von Brand
2003-02-27 16:33 ` Joe Thornber
2003-02-27 17:47 ` Greg KH
2003-02-27 9:34 ` Jakob Oestergaard
2003-02-27 10:01 ` Joe Thornber
2003-02-27 12:55 ` Jakob Oestergaard
2003-02-26 17:13 ` [PATCH 8/8] dm: return correct error codes from dm_table_add_target() Joe Thornber
[not found] <OF06EBF3D5.39937A14-ON87256CDB.004FD627@us.ibm.com>
2003-02-28 14:59 ` [PATCH 3/8] dm: prevent possible buffer overflow in ioctl interface Kevin Corry
2003-02-28 18:14 ` Horst von Brand
2003-02-28 18:31 ` Kevin Corry
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=03022708365304.05199@boiler \
--to=corryk@us.ibm.com \
--cc=joe@fib011235813.fsnet.co.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@transmeta.com \
--cc=vonbrand@inf.utfsm.cl \
/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