lkml.org 
[lkml]   [2006]   [Aug]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 19/20] MD: Fix a potential NULL dereference in md/raid1
    -stable review patch.  If anyone has any objections, please let us know.

    ------------------
    From: NeilBrown <neilb@suse.de>

    At the point where this 'atomic_add' is, rdev could be NULL, as seen by
    the fact that we test for this in the very next statement.

    Further is it is really the wrong place of the add. We could add to the
    count of corrected errors once the are sure it was corrected, not before
    trying to correct it.

    Signed-off-by: Neil Brown <neilb@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>


    diff .prev/drivers/md/raid1.c ./drivers/md/raid1.c
    ---
    drivers/md/raid1.c | 4 +++-
    1 file changed, 3 insertions(+), 1 deletion(-)

    --- linux-2.6.17.9.orig/drivers/md/raid1.c
    +++ linux-2.6.17.9/drivers/md/raid1.c
    @@ -1486,7 +1486,6 @@ static void raid1d(mddev_t *mddev)
    d = conf->raid_disks;
    d--;
    rdev = conf->mirrors[d].rdev;
    - atomic_add(s, &rdev->corrected_errors);
    if (rdev &&
    test_bit(In_sync, &rdev->flags)) {
    if (sync_page_io(rdev->bdev,
    @@ -1509,6 +1508,9 @@ static void raid1d(mddev_t *mddev)
    s<<9, conf->tmppage, READ) == 0)
    /* Well, this device is dead */
    md_error(mddev, rdev);
    + else
    + atomic_add(s, &rdev->corrected_errors);
    +
    }
    }
    } else {
    --
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2006-08-21 20:55    [W:3.832 / U:0.440 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site