lkml.org 
[lkml]   [2015]   [Jul]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.1 027/267] staging: rtl8712: prevent buffer overrun in recvbuf2recvframe
    Date
    4.1-stable review patch.  If anyone has any objections, please let me know.

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

    From: Haggai Eran <haggai.eran@gmail.com>

    commit cab462140f8a183e3cca0b51c8b59ef715cb6148 upstream.

    With an RTL8191SU USB adaptor, sometimes the hints for a fragmented
    packet are set, but the packet length is too large. Allocate enough
    space to prevent memory corruption and a resulting kernel panic [1].

    [1] http://www.spinics.net/lists/linux-wireless/msg136546.html

    Signed-off-by: Haggai Eran <haggai.eran@gmail.com>
    ACKed-by: Larry Finger <Larry.Finger@lwfinger.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/staging/rtl8712/rtl8712_recv.c | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    --- a/drivers/staging/rtl8712/rtl8712_recv.c
    +++ b/drivers/staging/rtl8712/rtl8712_recv.c
    @@ -1056,7 +1056,8 @@ static int recvbuf2recvframe(struct _ada
    /* for first fragment packet, driver need allocate 1536 +
    * drvinfo_sz + RXDESC_SIZE to defrag packet. */
    if ((mf == 1) && (frag == 0))
    - alloc_sz = 1658;/*1658+6=1664, 1664 is 128 alignment.*/
    + /*1658+6=1664, 1664 is 128 alignment.*/
    + alloc_sz = max_t(u16, tmp_len, 1658);
    else
    alloc_sz = tmp_len;
    /* 2 is for IP header 4 bytes alignment in QoS packet case.



    \
     
     \ /
      Last update: 2015-08-01 00:21    [W:5.291 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site