lkml.org 
[lkml]   [2013]   [Jan]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[ 068/171] regmap: debugfs: Avoid overflows for very small reads
    Date
    3.4-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Mark Brown <broonie@opensource.wolfsonmicro.com>

    commit db04328c167ff8e7c57f4a3532214aeada3a82fd upstream.

    If count is less than the size of a register then we may hit integer
    wraparound when trying to move backwards to check if we're still in
    the buffer. Instead move the position forwards to check if it's still
    in the buffer, we are unlikely to be able to allocate a buffer
    sufficiently big to overflow here.

    Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/base/regmap/regmap-debugfs.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/drivers/base/regmap/regmap-debugfs.c
    +++ b/drivers/base/regmap/regmap-debugfs.c
    @@ -90,7 +90,7 @@ static ssize_t regmap_map_read_file(stru
    /* If we're in the region the user is trying to read */
    if (p >= *ppos) {
    /* ...but not beyond it */
    - if (buf_pos >= count - 1 - tot_len)
    + if (buf_pos + 1 + tot_len >= count)
    break;

    /* Format the register */



    \
     
     \ /
      Last update: 2013-01-16 01:21    [W:4.158 / U:0.080 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site