public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Robert Love <rml@ximian.com>
To: John McCutchan <ttb@tentacle.dhs.org>
Cc: linux-kernel@vger.kernel.org, nautilus-list@gnome.org,
	gamin-list@gnome.org, viro@parcelfarce.linux.theplanet.co.uk
Subject: Re: [RFC][PATCH] inotify 0.9.2
Date: Tue, 21 Sep 2004 01:44:15 -0400	[thread overview]
Message-ID: <1095745455.2454.64.camel@localhost> (raw)
In-Reply-To: <1095652572.23128.2.camel@vertex>

[-- Attachment #1: Type: text/plain, Size: 290 bytes --]

On Sun, 2004-09-19 at 23:56 -0400, John McCutchan wrote:

> I would appreciate design review, code review and testing.

Hello sir!

kmalloc() can fail, so check the return value and handle appropriately.

Patch is against inotify 0.9.2 plus the last patches I sent.

Thanks,

	Robert Love


[-- Attachment #2: inotify-check-kmalloc-rml-1.patch --]
[-- Type: text/x-patch, Size: 1273 bytes --]

kmalloc() can fail. Check the return value.

Signed-Off-By: Robert Love <rml@novell.com>

 drivers/char/inotify.c |   17 +++++++++++++----
 1 files changed, 13 insertions(+), 4 deletions(-)

--- linux-inotify/drivers/char/inotify.c	2004-09-21 01:30:09.160707592 -0400
+++ linux/drivers/char/inotify.c	2004-09-21 01:40:47.777623064 -0400
@@ -551,11 +551,15 @@
 	int events;
 	int event_count;
 
-	eventbuf = kmalloc(sizeof(struct inotify_event) * MAX_EVENTS_AT_ONCE, 
-			GFP_KERNEL);
+	out = -ENOMEM;
+	eventbuf = kmalloc(sizeof(struct inotify_event) * MAX_EVENTS_AT_ONCE,
+			   GFP_KERNEL);
+	if (!eventbuf)
+		goto out;
+
+	out = 0;
 	events = 0;
 	event_count = 0;
-	out = 0;
 	err = 0;
 
 	obuf = buf;
@@ -644,7 +648,8 @@
 	}
 }
 
-static int inotify_open(struct inode *inode, struct file *file) {
+static int inotify_open(struct inode *inode, struct file *file)
+{
 	struct inotify_device *dev;
 
 	if (atomic_read(&watcher_count) == MAX_INOTIFY_DEVS)
@@ -653,7 +658,11 @@
 	atomic_inc(&watcher_count);
 
 	dev = kmalloc(sizeof(struct inotify_device), GFP_KERNEL);
+	if (!dev)
+		return -ENOMEM;
 	dev->bitmask = kmalloc(__BITMASK_SIZE, GFP_KERNEL);
+	if (!dev->bitmask)
+		return -ENOMEM;
 	memset(dev->bitmask, 0, __BITMASK_SIZE);
 
 	INIT_LIST_HEAD(&dev->events);

  parent reply	other threads:[~2004-09-21  5:44 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-09-20  3:56 [RFC][PATCH] inotify 0.9.2 John McCutchan
2004-09-20 21:52 ` Robert Love
2004-09-21  5:21 ` Robert Love
2004-09-21 15:34   ` Edgar Toernig
2004-09-21 15:43     ` Chris Friesen
2004-09-22  2:27       ` John McCutchan
2004-09-23  1:46         ` Ray Lee
2004-09-23  3:42           ` John McCutchan
2004-09-23  4:52             ` Ray Lee
2004-09-23  5:10               ` Robert Love
2004-09-23  5:29                 ` Ray Lee
2004-09-21 15:46     ` Robert Love
2004-09-21  5:26 ` Robert Love
2004-09-21  5:44 ` Robert Love [this message]
2004-09-21 16:04 ` Robert Love
2004-09-21 18:56   ` Robert Love
2004-09-21 20:55     ` Robert Love
2004-09-22  2:32     ` John McCutchan
2004-09-22  3:49       ` Robert Love

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=1095745455.2454.64.camel@localhost \
    --to=rml@ximian.com \
    --cc=gamin-list@gnome.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nautilus-list@gnome.org \
    --cc=ttb@tentacle.dhs.org \
    --cc=viro@parcelfarce.linux.theplanet.co.uk \
    /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