From patchwork Thu Dec 7 20:54:27 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Antony Antony X-Patchwork-Id: 845844 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yt75l1Zxjz9s84 for ; Fri, 8 Dec 2017 07:54:51 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752786AbdLGUyt (ORCPT ); Thu, 7 Dec 2017 15:54:49 -0500 Received: from lb2-smtp-cloud9.xs4all.net ([194.109.24.26]:35220 "EHLO lb2-smtp-cloud9.xs4all.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751022AbdLGUys (ORCPT ); Thu, 7 Dec 2017 15:54:48 -0500 Received: from localhost.localdomain ([83.163.117.153]) by smtp-cloud9.xs4all.net with ESMTPA id N3Bqer7hinIXbN3BsekHRt; Thu, 07 Dec 2017 21:54:46 +0100 From: Antony Antony To: Steffen Klassert , Herbert Xu Cc: netdev@vger.kernel.org, "David S . Miller" , Antony Antony Subject: [PATCH] xfrm: fix xfrm_do_migrate() with AEAD e.g(AES-GCM) Date: Thu, 7 Dec 2017 21:54:27 +0100 Message-Id: <20171207205427.53236-1-antony@phenome.org> X-Mailer: git-send-email 2.11.0 (Apple Git-81) X-CMAE-Envelope: MS4wfPRR6ag80lfEjioGSBQ5RrYiS10fAMQXaUWUNmcW6XFWjWlly3jjb41erTBnFKGnz0bmgXuImG9OG/B/Nu2FXNkSsiFu5idJD5tHW0O2XXpheA897Ic3 9pqCYcYORUDR6LkzKQGT092PcykTZhl/6gMWVALmHE/zEvg1LfEmJm6yOnh4rfaNJ/Zo7PRVDz/sVpxDHwEyE0+FDgW52iH6Zr7GW0z1KFrRxeOV44B1o1oI 7WZLjExMHNRWryOyjxpqEg2EIGlrqDJnmjg6MDUpGnjpCQgKNnMUmvplstXgYWCg Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org copy geniv when cloning the xfrm state. x->geniv was not copied to the new state and migration would fail. xfrm_do_migrate .. xfrm_state_clone() .. .. esp_init_aead() crypto_alloc_aead() crypto_alloc_tfm() crypto_find_alg() return EAGAIN and failed Signed-off-by: Antony Antony --- net/xfrm/xfrm_state.c | 1 + 1 file changed, 1 insertion(+) diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c index 065d89606888..500b3391f474 100644 --- a/net/xfrm/xfrm_state.c +++ b/net/xfrm/xfrm_state.c @@ -1343,6 +1343,7 @@ static struct xfrm_state *xfrm_state_clone(struct xfrm_state *orig, if (orig->aead) { x->aead = xfrm_algo_aead_clone(orig->aead); + x->geniv = orig->geniv; if (!x->aead) goto error; }