aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBeniamino Galvani <bgalvani@redhat.com>2016-07-26 06:24:53 -0400
committerDavid S. Miller <davem@davemloft.net>2016-07-26 17:27:48 -0400
commite3a3b626010a14fe067f163c2c43409d5afcd2a9 (patch)
treed9d62d62e980513cb5a2e25e2d5a68dff54efffb
parent2a0b9d8a1402a14fff06ed306a566025c75b2b87 (diff)
macsec: ensure rx_sa is set when validation is disabled
macsec_decrypt() is not called when validation is disabled and so macsec_skb_cb(skb)->rx_sa is not set; but it is used later in macsec_post_decrypt(), ensure that it's always initialized. Fixes: c09440f7dcb3 ("macsec: introduce IEEE 802.1AE driver") Signed-off-by: Beniamino Galvani <bgalvani@redhat.com> Acked-by: Sabrina Dubroca <sd@queasysnail.net> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/macsec.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/macsec.c b/drivers/net/macsec.c
index d8b2b49d6d5f..2d0beb1b801c 100644
--- a/drivers/net/macsec.c
+++ b/drivers/net/macsec.c
@@ -944,7 +944,6 @@ static struct sk_buff *macsec_decrypt(struct sk_buff *skb,
944 } 944 }
945 945
946 macsec_skb_cb(skb)->req = req; 946 macsec_skb_cb(skb)->req = req;
947 macsec_skb_cb(skb)->rx_sa = rx_sa;
948 skb->dev = dev; 947 skb->dev = dev;
949 aead_request_set_callback(req, 0, macsec_decrypt_done, skb); 948 aead_request_set_callback(req, 0, macsec_decrypt_done, skb);
950 949
@@ -1172,6 +1171,8 @@ static rx_handler_result_t macsec_handle_frame(struct sk_buff **pskb)
1172 } 1171 }
1173 } 1172 }
1174 1173
1174 macsec_skb_cb(skb)->rx_sa = rx_sa;
1175
1175 /* Disabled && !changed text => skip validation */ 1176 /* Disabled && !changed text => skip validation */
1176 if (hdr->tci_an & MACSEC_TCI_C || 1177 if (hdr->tci_an & MACSEC_TCI_C ||
1177 secy->validate_frames != MACSEC_VALIDATE_DISABLED) 1178 secy->validate_frames != MACSEC_VALIDATE_DISABLED)