mirror of https://lore.kernel.org/lkml/
 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: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-07 14:11 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 11:55     ` walter harms
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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome