Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp200156iob; Tue, 17 May 2022 23:39:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzcJk9s1eM+ZU2f6lupdk7Sf292hwMGFGWOCEYBIP0R3P2TrsykjpwLSBdkGs4/tJMYqP3s X-Received: by 2002:a17:902:70c9:b0:15f:a78:fd15 with SMTP id l9-20020a17090270c900b0015f0a78fd15mr25813491plt.12.1652855966750; Tue, 17 May 2022 23:39:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1652855966; cv=none; d=google.com; s=arc-20160816; b=bolf5lQcsuzz6yz2MSxdmJc3+2bBQ23evfWa6Nb1N9JDbwu6X1rKpVi4/c9P7/tjCg y4+NgkX7JTGJlKxHGfqhboqzS7CeR/ojDqslRjb4sZhWSSxR7XPP9noKnn4u0qW1Czo9 8xRCTEqkrdGedRw7Xurd6mOyrM7qsfDfvTCOz1T1rK9f4ufq6XeeLnHXg/CqlAoP01cz LvFtifx6NW0XFzchCB3zXtkg0JY/wRLK+MjbTzz6dJ4yv8imYWeijr+jkCSONS/397io aC65OwnSyAaSpQ4ul0tCQZ4P/MutAZWElkkK3c6Ucf0zbbnCrCx1YdIHWbUBx1oQ5Yie UH3w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:date:message-id:subject:cc:to:from :dkim-signature; bh=sRPDQ6TYyiX2HqopBwDDPnVVD6JO4kkYXrzgSnKLylU=; b=fXry/jieJaK0Q0BjJM8SalVF67Dq9arR3KJHnP9deRSAT8Rj6RQPBc9bjNjk1KnkjY tTuMp+ATYxeCk5lp7+/Hi6a4cKrhWKYG+pfRQBnRFoEPfyN0ip30Wyl2AxT5tGlZcvxV G31pcVGMwQdK0ApI4JejWY1pMba/6tEcqSTLeUjZAv3N8/va8E0IMIjj6KTcLmfKLZ9G x26sorUhKovBn4oC53NCQfaY6W7JaNo9x8ZMln3+laPpO+rQlquw/gkFpmsOIeSBwt8a 3Anv406O3NcKk9NLRwsumvoLO7AzgN7ZB6010akrr/VYYU2qsT7cCsMN+ycmeXzKCGXP TGLg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cvk.de header.s=mailcvk20190509 header.b=jMmAXKas; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=cvk.de Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id p14-20020aa79e8e000000b004fa3e2a9b13si1906774pfq.378.2022.05.17.23.39.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 May 2022 23:39:26 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@cvk.de header.s=mailcvk20190509 header.b=jMmAXKas; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=cvk.de Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 0C97371A0C; Tue, 17 May 2022 23:32:43 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231492AbiERGcd (ORCPT + 99 others); Wed, 18 May 2022 02:32:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33458 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231466AbiERGcX (ORCPT ); Wed, 18 May 2022 02:32:23 -0400 Received: from cvk-fw1.cvk.de (cvk-fw1.cvk.de [194.39.189.11]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 77C486C544; Tue, 17 May 2022 23:32:20 -0700 (PDT) Received: from localhost (cvk-fw1 [127.0.0.1]) by cvk-fw1.cvk.de (Postfix) with ESMTP id 4L337Q3Y88z4w3c; Wed, 18 May 2022 08:32:18 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cvk.de; h=date :date:message-id:subject:subject:from:from; s=mailcvk20190509; t=1652855538; x=1654669939; bh=Utam1949PRlwRKGxLcllKJ7LrsVNbIWe hFQQTs1q+cw=; b=jMmAXKasRGBs/HHHcj/yDwnUqrCecV3ASiKTQ9PoCvW44Unv jtpgU8pdzksHg7/K0Tv89+/T0kM2fWG0AImUmgEl5e0KBpF8atXyWhZ7JEDKwNI1 iegTqMNJHaEc09nXOJ5auWLcmwNCElEDFsSMzd72akvLjMDRNeI8nW5ngc+TT5ZX w6pntzglMKhX1ZYx7/qI4zdjlLMM2Y6GZYrH5yVal7obho37HYieQpi73G+cz//j r1ujxKELpMb/hVqPMJzwJPkU7DE7jf48IKuRYcA2GzstG60XiNvYLChHH26aAQgS FaWWYboibI8NzpqRzf9Txf9QoI6jhmGTNUreNA== X-Virus-Scanned: by amavisd-new at cvk.de Received: from cvk-fw1.cvk.de ([127.0.0.1]) by localhost (cvk-fw1.cvk.de [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id QIwtZT_K6MI9; Wed, 18 May 2022 08:32:18 +0200 (CEST) Received: from cvk027.cvk.de (cvk027.cvk.de [10.11.25.27]) by cvk-fw1.cvk.de (Postfix) with ESMTP; Wed, 18 May 2022 08:32:18 +0200 (CEST) Received: by cvk027.cvk.de (Postfix, from userid 0) id 5336B160CF38F; Wed, 18 May 2022 08:32:18 +0200 (CEST) From: Thomas Bartschies To: davem@davemloft.net Cc: steffen.klassert@secunet.com, herbert@gondor.apana.org.au, kuba@kernel.org, pabeni@redhat.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [Patch] net: af_key: check encryption module availability consistency Message-Id: <20220518063218.5336B160CF38F@cvk027.cvk.de> Date: Wed, 18 May 2022 08:32:18 +0200 (CEST) X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Since the recent introduction supporting the SM3 and SM4 hash algos for IPsec, the kernel produces invalid pfkey acquire messages, when these encryption modules are disabled. This happens because the availability of the algos wasn't checked in all necessary functions. This patch adds these checks. Signed-off-by: Thomas Bartschies diff -uprN a/net/key/af_key.c b/net/key/af_key.c --- a/net/key/af_key.c 2022-05-09 09:16:33.000000000 +0200 +++ b/net/key/af_key.c 2022-05-13 13:51:58.286250337 +0200 @@ -2898,7 +2898,7 @@ static int count_ah_combs(const struct x break; if (!aalg->pfkey_supported) continue; - if (aalg_tmpl_set(t, aalg)) + if (aalg_tmpl_set(t, aalg) && aalg->available) sz += sizeof(struct sadb_comb); } return sz + sizeof(struct sadb_prop); @@ -2916,7 +2916,7 @@ static int count_esp_combs(const struct if (!ealg->pfkey_supported) continue; - if (!(ealg_tmpl_set(t, ealg))) + if (!(ealg_tmpl_set(t, ealg) && ealg->available)) continue; for (k = 1; ; k++) { @@ -2927,7 +2927,7 @@ static int count_esp_combs(const struct if (!aalg->pfkey_supported) continue; - if (aalg_tmpl_set(t, aalg)) + if (aalg_tmpl_set(t, aalg) && aalg->available) sz += sizeof(struct sadb_comb); } }