]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
macsec: replace custom checks on MACSEC_SA_ATTR_AN with NLA_POLICY_MAX
authorSabrina Dubroca <sd@queasysnail.net>
Tue, 26 Aug 2025 13:16:19 +0000 (15:16 +0200)
committerJakub Kicinski <kuba@kernel.org>
Thu, 28 Aug 2025 01:34:52 +0000 (18:34 -0700)
Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/22a7820cfc2cbfe5e33f030f1a3276e529cc70dc.1756202772.git.sd@queasysnail.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/macsec.c

index 4c75d1fea552719821e06b72b764dc7cca69df6d..96ca1b00438fa51198d4f5ad0b8a834d8324bda7 100644 (file)
@@ -1583,9 +1583,6 @@ static struct macsec_tx_sa *get_txsa_from_nl(struct net *net,
        if (IS_ERR(dev))
                return ERR_CAST(dev);
 
-       if (*assoc_num >= MACSEC_NUM_AN)
-               return ERR_PTR(-EINVAL);
-
        secy = &macsec_priv(dev)->secy;
        tx_sc = &secy->tx_sc;
 
@@ -1646,8 +1643,6 @@ static struct macsec_rx_sa *get_rxsa_from_nl(struct net *net,
                return ERR_PTR(-EINVAL);
 
        *assoc_num = nla_get_u8(tb_sa[MACSEC_SA_ATTR_AN]);
-       if (*assoc_num >= MACSEC_NUM_AN)
-               return ERR_PTR(-EINVAL);
 
        rx_sc = get_rxsc_from_nl(net, attrs, tb_rxsc, devp, secyp);
        if (IS_ERR(rx_sc))
@@ -1674,7 +1669,7 @@ static const struct nla_policy macsec_genl_rxsc_policy[NUM_MACSEC_RXSC_ATTR] = {
 };
 
 static const struct nla_policy macsec_genl_sa_policy[NUM_MACSEC_SA_ATTR] = {
-       [MACSEC_SA_ATTR_AN] = { .type = NLA_U8 },
+       [MACSEC_SA_ATTR_AN] = NLA_POLICY_MAX(NLA_U8, MACSEC_NUM_AN - 1),
        [MACSEC_SA_ATTR_ACTIVE] = { .type = NLA_U8 },
        [MACSEC_SA_ATTR_PN] = NLA_POLICY_MIN_LEN(4),
        [MACSEC_SA_ATTR_KEYID] = { .type = NLA_BINARY,
@@ -1739,8 +1734,6 @@ static bool validate_add_rxsa(struct nlattr **attrs)
            !attrs[MACSEC_SA_ATTR_KEYID])
                return false;
 
-       if (nla_get_u8(attrs[MACSEC_SA_ATTR_AN]) >= MACSEC_NUM_AN)
-               return false;
 
        if (attrs[MACSEC_SA_ATTR_PN] &&
            nla_get_u64(attrs[MACSEC_SA_ATTR_PN]) == 0)
@@ -1984,9 +1977,6 @@ static bool validate_add_txsa(struct nlattr **attrs)
            !attrs[MACSEC_SA_ATTR_KEYID])
                return false;
 
-       if (nla_get_u8(attrs[MACSEC_SA_ATTR_AN]) >= MACSEC_NUM_AN)
-               return false;
-
        if (nla_get_u64(attrs[MACSEC_SA_ATTR_PN]) == 0)
                return false;
 
@@ -2339,9 +2329,6 @@ static bool validate_upd_sa(struct nlattr **attrs)
            attrs[MACSEC_SA_ATTR_SALT])
                return false;
 
-       if (nla_get_u8(attrs[MACSEC_SA_ATTR_AN]) >= MACSEC_NUM_AN)
-               return false;
-
        if (attrs[MACSEC_SA_ATTR_PN] && nla_get_u64(attrs[MACSEC_SA_ATTR_PN]) == 0)
                return false;