]> git.baikalelectronics.ru Git - kernel.git/commit
af_key: Fix sadb_x_ipsecrequest parsing
authorHerbert Xu <herbert@gondor.apana.org.au>
Thu, 13 Apr 2017 10:35:59 +0000 (18:35 +0800)
committerSteffen Klassert <steffen.klassert@secunet.com>
Tue, 18 Apr 2017 06:26:03 +0000 (08:26 +0200)
commitc0f93d7173705cb5015f2b8afebba0d1fedfe81b
tree7a44309e40adeb5fcd793826b55047d4189f9a84
parent5d9db8b0c2fd6b0aac0a0941f7745a977d917775
af_key: Fix sadb_x_ipsecrequest parsing

The parsing of sadb_x_ipsecrequest is broken in a number of ways.
First of all we're not verifying sadb_x_ipsecrequest_len.  This
is needed when the structure carries addresses at the end.  Worse
we don't even look at the length when we parse those optional
addresses.

The migration code had similar parsing code that's better but
it also has some deficiencies.  The length is overcounted first
of all as it includes the header itself.  It also fails to check
the length before dereferencing the sa_family field.

This patch fixes those problems in parse_sockaddr_pair and then
uses it in parse_ipsecrequest.

Reported-by: Andrey Konovalov <andreyknvl@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
net/key/af_key.c