macsec: Fix header length if SCI is added if explicitly disabled
authorTobias Brunner <tobias@strongswan.org>
Mon, 24 Oct 2016 13:44:26 +0000 (15:44 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 27 Oct 2016 20:21:00 +0000 (16:21 -0400)
commite0f841f5cbf2a195c63f3441f3d8ef1cd2bdeeed
treedee1989eb0d3ce80167b44b12ee6c6000e26279a
parentf62265b53ef34a372b657c99e23d32e95b464316
macsec: Fix header length if SCI is added if explicitly disabled

Even if sending SCIs is explicitly disabled, the code that creates the
Security Tag might still decide to add it (e.g. if multiple RX SCs are
defined on the MACsec interface).
But because the header length so far only depended on the configuration
option the SCI overwrote the original frame's contents (EtherType and
e.g. the beginning of the IP header) and if encrypted did not visibly
end up in the packet, while the SC flag in the TCI field of the Security
Tag was still set, resulting in invalid MACsec frames.

Fixes: c09440f7dcb3 ("macsec: introduce IEEE 802.1AE driver")
Signed-off-by: Tobias Brunner <tobias@strongswan.org>
Acked-by: Sabrina Dubroca <sd@queasysnail.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/macsec.c