lkml.org 
[lkml]   [2009]   [Nov]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 2/8] cxacru: check data length is not negative
    When attempting to read data that is not actually
    an array of values, the length may be negative
    which causes an Oops due to a likely access off
    the end of the data array.

    This bug should not occur under normal use unless
    the device returns an invalid response.

    Signed-off-by: Simon Arlott <simon@fire.lp0.eu>
    ---
    drivers/usb/atm/cxacru.c | 2 +-
    1 files changed, 1 insertions(+), 1 deletions(-)

    diff --git a/drivers/usb/atm/cxacru.c b/drivers/usb/atm/cxacru.c
    index 4a26a6c..8da4a06 100644
    --- a/drivers/usb/atm/cxacru.c
    +++ b/drivers/usb/atm/cxacru.c
    @@ -596,7 +596,7 @@ static int cxacru_cm_get_array(struct cxacru_data *instance, enum cxacru_cm_requ
    len = ret / 4;
    for (offb = 0; offb < len; ) {
    int l = le32_to_cpu(buf[offb++]);
    - if (l > stride || l > (len - offb) / 2) {
    + if (l < 0 || l > stride || l > (len - offb) / 2) {
    if (printk_ratelimit())
    usb_err(instance->usbatm, "invalid data length from cm %#x: %d\n",
    cm, l);
    --
    1.6.3.3
    --
    Simon Arlott



    \
     
     \ /
      Last update: 2009-11-21 16:29    [W:0.020 / U:0.352 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site