UPSTREAM: xfrm_user: validate XFRM_MSG_NEWAE incoming ESN size harder

Kees Cook has pointed out that xfrm_replay_state_esn_len() is subject to
wrapping issues.  To ensure we are correctly ensuring that the two ESN
structures are the same size compare both the overall size as reported
by xfrm_replay_state_esn_len() and the internal length are the same.

CVE-2017-7184
Signed-off-by: Andy Whitcroft <apw@canonical.com>
Acked-by: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Andrey Ulanov <andreyu@google.com>

(chery picked from f843ee6dd019bcece3e74e76ad9df0155655d0df)

BUG=b:36733546
TEST=kernel compiles

Change-Id: Ifc49ff10d8e8ed8337fa61b5a7129db569892e89
Reviewed-on: https://chromium-review.googlesource.com/462459
Commit-Ready: Andrey Ulanov <andreyu@google.com>
Tested-by: Andrey Ulanov <andreyu@google.com>
Reviewed-by: Guenter Roeck <groeck@chromium.org>
(cherry picked from commit 7e02bef7e3154372ec74e232d8936ad9864a90a5)
Reviewed-on: https://chromium-review.googlesource.com/465593
Commit-Queue: Andrey Ulanov <andreyu@google.com>
1 file changed