OSDN Git Service

ipv4: Fix packet size calculation for raw IPsec packets in __ip_append_data
authorSteffen Klassert <steffen.klassert@secunet.com>
Sun, 5 Jun 2011 20:48:47 +0000 (20:48 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 9 Jun 2011 21:49:59 +0000 (14:49 -0700)
commit96d7303e9cfb6a9bc664174a4dfdb6fa689284fe
tree5478498eaa5f23f2548930d83b06b3ee1280856d
parente23535ca11525945bd7fca05ac5941efba232498
ipv4: Fix packet size calculation for raw IPsec packets in __ip_append_data

We assume that transhdrlen is positive on the first fragment
which is wrong for raw packets. So we don't add exthdrlen to the
packet size for raw packets. This leads to a reallocation on IPsec
because we have not enough headroom on the skb to place the IPsec
headers. This patch fixes this by adding exthdrlen to the packet
size whenever the send queue of the socket is empty. This issue was
introduced with git commit 1470ddf7 (inet: Remove explicit write
references to sk/inet in ip_append_data)

Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/ip_output.c