ipv6/exthdrs: strict Pad1 and PadN check
authorEldad Zack <eldad@fogrefinery.com>
Sun, 20 May 2012 01:59:33 +0000 (01:59 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sun, 20 May 2012 20:58:39 +0000 (16:58 -0400)
commit9b905fe68433378032b851c4d81a59187689fa52
tree307801197cf9ce8b520a026962bf1e73f0019f9f
parentf7142e6c226076fd40c2ebaad9fb0c9a631b790e
ipv6/exthdrs: strict Pad1 and PadN check

The following tightens the padding check from commit
c1412fce7eccae62b4de22494f6ab3ff8a90c0c6 :

* Take into account combinations of consecutive Pad1 and PadN.

* Catch the corner case of when only padding is present in the
  header, when the extention header length is 0 (i.e., 8 bytes).
  In this case, the header would have exactly 6 bytes of padding:

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
:  Next Header  : Hdr Ext Len=0 :                               :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
:                        Padding (Pad1 or PadN)                 :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Signed-off-by: Eldad Zack <eldad@fogrefinery.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/exthdrs.c