All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jens Axboe <axboe@kernel.dk>
To: Dan Carpenter <dan.carpenter@oracle.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: integer overflows in kernel/relay.c
Date: Wed, 08 Feb 2012 09:34:16 +0100	[thread overview]
Message-ID: <4F323388.7040902@kernel.dk> (raw)
In-Reply-To: <20120207141155.GA16184@elgon.mountain>

On 02/07/2012 03:11 PM, Dan Carpenter wrote:
> My static checker is warning about integer overflows in kernel/relay.c
> 
> relay_create_buf()
>    170  
>    171          buf->padding = kmalloc(chan->n_subbufs * sizeof(size_t *), GFP_KERNEL);
>                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> This can only overflow on 32bit systems.

Correct

>    172          if (!buf->padding)
>    173                  goto free_buf;
>    174  
> 
> relay_open()
>    582          chan->version = RELAYFS_CHANNEL_VERSION;
>    583          chan->n_subbufs = n_subbufs;
>    584          chan->subbuf_size = subbuf_size;
>    585          chan->alloc_size = FIX_SIZE(subbuf_size * n_subbufs);
>                                             ^^^^^^^^^^^^^^^^^^^^^^^
>    586          chan->parent = parent;
> 
> These come from the user in blk_trace_setup() and they aren't capped.
> I'm not sure what the maximum size to use is.

They are both u32 types, so can overflow on 32-bit as well. By default,
blktrace is using 4 for n_subbufs and 512k for subbuf_size, but they are
configurable. As a fix, I would suggest just checking if the products
overflow, and if they do, return an error. That's better than imposing
some hard limits. In reality, only a malicious users would trigger
these.

-- 
Jens Axboe


  reply	other threads:[~2012-02-08  8:35 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-07 14:11 integer overflows in kernel/relay.c Dan Carpenter
2012-02-08  8:34 ` Jens Axboe [this message]
2012-02-08 22:25   ` Andrew Morton
2012-02-09 12:41     ` Jens Axboe
2012-02-09 17:39       ` Andrew Morton
2012-02-09 12:41     ` [PATCH RFC] slab: introduce knalloc/kxnalloc Xi Wang
2012-02-09 13:05       ` Pekka Enberg
2012-02-09 13:19         ` Jens Axboe
2012-02-09 13:26           ` Xi Wang
2012-02-09 13:48             ` [PATCH RFC v2] slab: introduce kmalloc_array Xi Wang
2012-02-09 22:42               ` David Rientjes
2012-02-09 23:08                 ` Andrew Morton
2012-02-09 22:47               ` Jesper Juhl
2012-02-09 23:06                 ` Andrew Morton
2012-02-09 23:43                   ` Joe Perches
2012-02-13 15:08                   ` Xi Wang
2012-02-13 16:01                     ` Christoph Lameter
2012-02-13 19:44                       ` Dan Carpenter
2012-02-13 20:27                         ` Christoph Lameter
2012-02-14  7:20                           ` Dan Carpenter
2012-02-14  7:35                             ` Pekka Enberg
2012-02-14 11:12                             ` Xi Wang
2012-02-14 15:02                             ` Christoph Lameter
2012-02-14 16:30                               ` Xi Wang
2012-02-14 16:34                                 ` Christoph Lameter
2012-02-14 16:43                                   ` Xi Wang
2012-02-14 19:33                                     ` Uninline kcalloc Christoph Lameter
2012-02-14 19:37                                       ` Christoph Lameter
2012-02-14 20:46                                         ` Andrew Morton
2012-02-14 20:50                                         ` Nick Bowler
2012-02-14 21:24                                           ` Christoph Lameter
2012-02-15 20:17                                             ` Nick Bowler
2012-02-15 20:24                                               ` Nick Bowler
2012-02-14 20:45                                       ` Andrew Morton
2012-02-14 20:58                                         ` Pekka Enberg
2012-02-14 21:09                                           ` Christoph Lameter
2012-02-14 21:31                                             ` Pekka Enberg
2012-02-14 21:38                                               ` Christoph Lameter
2012-02-14 21:46                                             ` Xi Wang
2012-02-14 22:08                                               ` Christoph Lameter
2012-02-15 19:14                                                 ` Xi Wang
2012-02-15 19:34                                                   ` Christoph Lameter
2012-02-16  3:10                                                     ` Xi Wang
2012-02-16 14:51                                                       ` Christoph Lameter
2012-02-16 18:32                                                         ` Xi Wang
2012-02-16 20:47                                                           ` Christoph Lameter
2012-02-10 13:09               ` [PATCH RFC v2] slab: introduce kmalloc_array Alexey Dobriyan
2012-02-10 13:11                 ` Alexey Dobriyan
2012-02-10 13:55                   ` Xi Wang
2012-02-10 13:58                     ` Alexey Dobriyan
2012-02-10 14:09                       ` Xi Wang
2012-02-11 12:19                         ` Alexey Dobriyan
2012-02-12  5:46                           ` Xi Wang
2012-02-09 12:56     ` integer overflows in kernel/relay.c Pekka Enberg
2012-02-09 10:44   ` [patch] relay: prevent integer overflow in relay_open() Dan Carpenter
2012-02-09 10:44     ` Dan Carpenter
2012-02-09 11:55     ` walter harms
2012-02-09 11:55       ` walter harms
2012-02-09 12:36       ` Dan Carpenter
2012-02-09 12:36         ` Dan Carpenter

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=4F323388.7040902@kernel.dk \
    --to=axboe@kernel.dk \
    --cc=dan.carpenter@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.