public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
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;
 }
 

  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