public inbox for linux-pm@vger.kernel.org
 help / color / mirror / Atom feed
From: Pavel Machek <pavel@ucw.cz>
To: Arve Hj??nnev??g <arve@android.com>
Cc: ncunningham@crca.org.au, u.luckas@road.de, swetland@google.com,
	linux-pm@lists.linux-foundation.org
Subject: Re: [PATCH 2/9] PM: suspend_block: Add driver to access suspend	blockers from user-space
Date: Tue, 5 May 2009 22:12:25 +0200	[thread overview]
Message-ID: <20090505201225.GG1379@ucw.cz> (raw)
In-Reply-To: <1241583529-5092-3-git-send-email-arve@android.com>

Hi!

> Add a misc device, "suspend_blocker", that allows user-space processes
> to block auto suspend. The device has ioctls to create a suspend_blocker,
> and to block and unblock suspend. To delete the suspend_blocker, close
> the device.

Rafael proposed write() interface. I don't think you answered that.


> +static int create_user_suspend_blocker(struct file *file, void __user *name,
> +				 size_t name_len)
> +{
> +	struct user_suspend_blocker *bl;
> +	if (file->private_data)
> +		return -EBUSY;
> +	bl = kzalloc(sizeof(*bl) + name_len + 1, GFP_KERNEL);
> +	if (!bl)
> +		return -ENOMEM;
> +	if (copy_from_user(bl->name, name, name_len))
> +		goto err_fault;
> +	suspend_blocker_init(&bl->blocker, bl->name);
> +	file->private_data = bl;
> +	return 0;

kzalloc on user-supplied argument. Sounds like bad idea.

Aha. And probably integer overflow in the same line. Ouch.

Plus you actually 'trust' the string from userspace. Someone passes
"evdev" there and can masquerade as a part of kernel.

> +static int user_suspend_blocker_release(struct inode *inode, struct file *file)
> +{
> +	struct user_suspend_blocker *bl = file->private_data;
> +	if (!bl)
> +		return 0;
> +	suspend_blocker_destroy(&bl->blocker);
> +	kfree(bl);
> +	return 0;
> +}

What happens if someone does dup() on such file descriptor? 


-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

  reply	other threads:[~2009-05-05 20:12 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-06  4:18 [RFC][PATCH 0/9] Suspend block api (version 3) Arve Hjønnevåg
2009-05-06  4:18 ` [PATCH 1/9] PM: Add suspend block api Arve Hjønnevåg
2009-05-06  4:18   ` [PATCH 2/9] PM: suspend_block: Add driver to access suspend blockers from user-space Arve Hjønnevåg
2009-05-05 20:12     ` Pavel Machek [this message]
2009-05-07  1:42       ` Arve Hjønnevåg
2009-05-07 10:32         ` Pavel Machek
2009-05-08  0:43           ` Arve Hjønnevåg
2009-05-08 14:22             ` Rafael J. Wysocki
2009-05-09  0:38               ` Arve Hjønnevåg
2009-05-05 20:16     ` Pavel Machek
2009-05-07  1:31       ` Arve Hjønnevåg
2009-05-07 10:43         ` Pavel Machek
2009-05-06  4:18     ` [PATCH 3/9] PM: suspend_block: Abort task freezing if a suspend_blocker is active Arve Hjønnevåg
2009-05-05 19:57       ` Pavel Machek
2009-05-07  1:51         ` Arve Hjønnevåg
2009-05-07 10:41           ` Pavel Machek
2009-05-07 23:49             ` Arve Hjønnevåg
2009-05-08  1:06               ` Nigel Cunningham
2009-05-08  1:22                 ` Arve Hjønnevåg
2009-05-08  1:35                   ` Nigel Cunningham
2009-05-08 14:40                     ` Rafael J. Wysocki
2009-05-08 22:27                       ` Nigel Cunningham
2009-05-08 23:01                         ` Rafael J. Wysocki
2009-05-09  0:12                           ` Nigel Cunningham
2009-05-12 10:05                           ` Pavel Machek
2009-05-12 16:55                             ` Rafael J. Wysocki
2009-05-12 19:33                               ` Pavel Machek
2009-05-12 10:04               ` Pavel Machek
2009-05-08  0:22         ` Rafael J. Wysocki
2009-05-06  4:18       ` [PATCH 4/9] Input: Block suspend while event queue is not empty Arve Hjønnevåg
2009-05-05 20:02         ` Pavel Machek
2009-05-07  1:57           ` Arve Hjønnevåg
2009-05-06  4:18         ` [PATCH 5/9] PM: suspend_block: Switch to list of active and inactive suspend blockers Arve Hjønnevåg
2009-05-06  4:18           ` [PATCH 6/9] PM: suspend_block: Add debugfs file Arve Hjønnevåg
2009-05-06  4:18             ` [PATCH 7/9] PM: suspend_block: Add suspend_blocker stats Arve Hjønnevåg
2009-05-06  4:18               ` [PATCH 8/9] PM: suspend_block: Add timeout support Arve Hjønnevåg
2009-05-06  4:18                 ` [PATCH 9/9] PM: suspend_block: Add timeout support to user-space suspend_blockers Arve Hjønnevåg
2009-05-06 17:17 ` [RFC][PATCH 0/9] Suspend block api (version 3) Kevin Hilman
2009-05-07 22:42   ` Arve Hjønnevåg
2009-05-08 16:01     ` mark gross
2009-05-08 23:36     ` Kevin Hilman
2009-05-15 19:58     ` Pavel Machek
     [not found] <Pine.LNX.4.44L0.1004271432280.1850-100000@iolanthe.rowland.org>
2010-04-27 22:03 ` [PATCH 2/9] PM: suspend_block: Add driver to access suspend blockers from user-space Rafael J. Wysocki
     [not found] ` <201004280003.31668.rjw@sisk.pl>
2010-04-27 23:22   ` Arve Hjønnevåg
     [not found] <y2nd6200be21004262104mb81ba7d6xe5c8f35689ca20a0@mail.gmail.com>
2010-04-27 18:33 ` Alan Stern
     [not found] <v2ld6200be21004251534y6c820e96l824f3288201a757d@mail.gmail.com>
2010-04-26 19:25 ` Alan Stern
     [not found] ` <Pine.LNX.4.44L0.1004261518130.1764-100000@iolanthe.rowland.org>
2010-04-27  4:04   ` Arve Hjønnevåg
     [not found] <20100424055523.GC2290@elf.ucw.cz>
2010-04-24 14:44 ` Alan Stern
     [not found] ` <Pine.LNX.4.44L0.1004241037230.6848-100000@netrider.rowland.org>
2010-04-25 22:34   ` Arve Hjønnevåg
     [not found] <1271984938-13920-1-git-send-email-arve@android.com>
     [not found] ` <1271984938-13920-2-git-send-email-arve@android.com>
2010-04-23  1:08   ` Arve Hjønnevåg
2010-04-23  2:25     ` Matt Helsley
     [not found]     ` <20100423022522.GB32490@count0.beaverton.ibm.com>
2010-04-23  3:54       ` Arve Hjønnevåg
2010-04-23  4:38       ` Greg KH
2010-04-23  8:43     ` Pavel Machek
     [not found]     ` <20100423084349.GC1573@ucw.cz>
2010-04-23 16:43       ` Alan Stern
2010-04-24  1:53       ` tytso
     [not found]       ` <Pine.LNX.4.44L0.1004231242460.1777-100000@iolanthe.rowland.org>
2010-04-24  3:20         ` Arve Hjønnevåg
     [not found]         ` <i2zd6200be21004232020t46f4de0ct93b94e2bd67a6e76@mail.gmail.com>
2010-04-24  5:55           ` Pavel Machek
     [not found]       ` <20100424015334.GO14986@thunk.org>
2010-04-24  5:39         ` Pavel Machek
  -- strict thread matches above, loose matches on Subject: below --
2009-04-30  3:09 [RFC][PATCH 0/9] Suspend block api (version 2) Arve Hjønnevåg
2009-04-30  3:10 ` [PATCH 1/9] PM: Add suspend block api Arve Hjønnevåg
2009-04-30  3:10   ` [PATCH 2/9] PM: suspend_block: Add driver to access suspend blockers from user-space Arve Hjønnevåg

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=20090505201225.GG1379@ucw.cz \
    --to=pavel@ucw.cz \
    --cc=arve@android.com \
    --cc=linux-pm@lists.linux-foundation.org \
    --cc=ncunningham@crca.org.au \
    --cc=swetland@google.com \
    --cc=u.luckas@road.de \
    /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