[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20131021.182319.625146263287554088.davem@davemloft.net>
Date: Mon, 21 Oct 2013 18:23:19 -0400 (EDT)
From: David Miller <davem@...emloft.net>
To: antonio@...hcoding.com
Cc: netdev@...r.kernel.org
Subject: Re: [PATCH net] netpoll: linearize skb before accessing its data
From: Antonio Quartulli <antonio@...hcoding.com>
Date: Mon, 21 Oct 2013 23:31:20 +0200
> __netpoll_rx() assumes that the data buffer of the received
> skb is linear and then passes it to rx_hook().
> However this is not true because the skb has not been
> linearized yet.
>
> This can cause rx_hook() to access non allocated memory
> while parsing the received data.
>
> Fix __netpoll_rx() by explicitly linearising the skb.
>
> Signed-off-by: Antonio Quartulli <antonio@...hcoding.com>
It is rx_hook's obligation to access the SKB properly and not
assume that the SKB is linear. It is very expensive to
linearize every SKB just for the sake of improperly implemented
receive hooks.
In particular the rx hooks must make use of interface such
as pskb_may_pull(), just like every other protocol does
on packet input processing, to make sure the area they want
to access is in the linear area.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists