Daniel Borkmann 7921895a5e net: esp{4,6}: fix potential MTU calculation overflows
Commit 91657eafb ("xfrm: take net hdr len into account for esp payload
size calculation") introduced a possible interger overflow in
esp{4,6}_get_mtu() handlers in case of x->props.mode equals
XFRM_MODE_TUNNEL. Thus, the following expression will overflow

  unsigned int net_adj;
  ...
  <case ipv{4,6} XFRM_MODE_TUNNEL>
         net_adj = 0;
  ...
  return ((mtu - x->props.header_len - crypto_aead_authsize(esp->aead) -
           net_adj) & ~(align - 1)) + (net_adj - 2);

where (net_adj - 2) would be evaluated as <foo> + (0 - 2) in an unsigned
context. Fix it by simply removing brackets as those operations here
do not need to have special precedence.

Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
Cc: Benjamin Poirier <bpoirier@suse.de>
Cc: Steffen Klassert <steffen.klassert@secunet.com>
Acked-by: Benjamin Poirier <bpoirier@suse.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-08-05 12:26:50 -07:00
..
2013-06-12 15:03:24 -07:00
2013-05-28 13:11:02 -07:00
2013-06-12 14:14:55 -07:00
2013-03-17 14:35:13 -04:00
2012-10-08 17:42:36 -04:00
2013-07-01 23:35:22 -07:00
2013-07-16 12:59:28 -07:00
2013-07-02 01:13:09 -07:00
2013-06-10 21:22:35 -07:00
2012-01-20 14:17:26 -05:00
2012-01-20 14:17:26 -05:00
2012-05-17 14:59:59 -04:00
2013-07-10 17:08:27 -07:00
2011-03-31 11:26:23 -03:00
2013-03-21 11:47:50 -04:00
2013-03-21 11:47:50 -04:00
2011-03-31 11:26:23 -03:00
2012-03-11 23:42:51 -07:00
2012-04-15 12:37:19 -04:00
2013-05-31 17:19:05 -07:00