From nobody Tue Sep 29 11:55:07 2026 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ED47A28C037 for ; Sat, 8 Aug 2026 11:50:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786189813; cv=none; b=cbuBq2IHIjGPPSgVpJUbdrCYvAeqxpVotqTvLnc9YqP1ku0YwdAjhGFnZG6+K45LJMO0lSQ6jTVAdMHHe/LUTAm0qVsbc7eNY8Sj0qYfpdTuKSKREH2cVkEGwxTXPoR9EAH7oMROHKvW8sOR8U1WACFCUaMGGhCBB1iFH39H0xo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786189813; c=relaxed/simple; bh=tA28uoe9/JaeFzrkRmsJq0oKqgIaYOAI9C6nJZU2+3Q=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=MYOmnvl3Eneq8EiztkfOhdEh4ovLxMJnuuc+1601xXvXBQvXWZlSBacJHviWFnRWLyWeBv7P6osfnzaT3rQhps2S/0kK0gLdGH9cgYlh/qpgICmlQtB1n3r5mXOPH5JIs3mMeU3+HuubTlr0W5XjgIz3L7TM4twAedrUzjMPHoY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=mfz6jVGE; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="mfz6jVGE" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-4956869750eso2421255e9.2 for ; Sat, 08 Aug 2026 04:50:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786189809; x=1786794609; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=DW2tDdMOslx4M3knW21+tMviVsy6n6Zzbi+lL0TdSvQ=; b=mfz6jVGEFC2BwHSA/SvpoZrO3KZnuNJSUDuLJrl2+mSOyDDqqx/pIcbPit7V1NVD1i qYwvwNKIL9/cHTIjTN1hzDE5eVvB2V/IBD5NHXPhbitevvUTAkoO+tXGaDDNQi/OEO3m dN5hJDoJxpVnlLojpdkzAdkaEK79kGaXs/Op0AUf6yBe7RsTETV1+vWuSnFtGtLHXbOJ NuaCuMTvfYHq4AJiDoRrDoAbAAO6pbri4llZx5VWoOJzzRGfatbq4tb3IHFjivkTV7sz EaXqQ8EFAkbTHBNsUfDJDTng7Gk7m52wrHtvWpPAghmz/jC/Vns3KD65e+AFgUyoVV+f Zh6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786189809; x=1786794609; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=DW2tDdMOslx4M3knW21+tMviVsy6n6Zzbi+lL0TdSvQ=; b=Eav+9BqxeZmzeM6I3VKoCe2v0A6HcyneeloiZQk92e700BmtHX3tKCrEgoZU2N3U7H IWSZ7H0r8h4IL0YNI+o6yAqE+2Bu8ReP4+cvpD9E1azDWEjTLMKyEM2Veka9+revwkYu HxhHG8EEoTEu31dd+vfe8M0WkPXO9EULMxA1LwShmUyt9atPG437GOmZRIK/mMjxeM7P 2pZRLVMauOG9jZMMhphwZMlXwbVl+6OmpbeR4B/URxDsJVTRegllVv7RmONAt5mLK3Sf cV2BSpQYHhUpRbNEvVQXxvHP+eoIgt8uwdKrRHukl4LE9i9HRG9z1WS5Jd2peqhUxXvM 81hg== X-Forwarded-Encrypted: i=1; AHgh+Ro59rd6gyaj9UTesQFsNrTdGB4VMhbnZuLTvrgVfl0Vl5SSZAOvu2mxKAI/VKk6PBNZTD6qH2QfnjZWjYA=@vger.kernel.org X-Gm-Message-State: AOJu0Ywdb63TGF1BWuaPNo5EC7sMTO2PfG4WMo/3fYgI8N+Iao6C2Y7r kXdI8sP6E/+HGaemzZ6wHFUIEEulxPcVTBXrieqSrVtX0XKm8PE8SdxG X-Gm-Gg: AR+sD13XC+MD+F6VY5aKJK71Z1oKBwjzVb+nTmiuuqLQ21Tsvu9Z2kLR7Mg+u3grtFl MU9ZBI5ts3QljHtfUuYbfkDT5LhoYuceGH8m14Vr/dW5il5TSYfk032Wy2EIGTq8MSJGjhuquXt s+U+2jLmNmh4wLFed22/A17Ha9Lj0N/t65Wl//Eif8127aJ9oHtIwtaOEdCZCq2dXKANeI2PwJR 3pCo2GyJcSapbh5KDgns2hjV/LETB97AFh0aOfu93eB/KsRewxdvmHwo0on+xixCadt1Ee7O0z0 l3VItDPBfxBuvA/So2JhErYUKJvUQvfZ5RlQqdY6hlg9v7aBixgdSvfdxSEAzhTxp9/XY0UraLk dZYDNLwhXTLeR+78k5VpWDALDYW8wLZf5llvHKifVMjsPH287QPsJuKQ7tHRNbTVKxkJajQ5ddk tVmUMSBPnw9qKqxDU3+/KDXLlYxg/S+NHh+1zxcoXS9Y2PrDfBWdZacFJNKujeFzM4XCXmDThby XZ+HRQnQTIwKwx43KaCpBIEk2cwpcw6CEyR4XFZPAHiBwPbzjcpv859ZbYsQl1fivGYqdfX0lXH aRwZ6cdU/BHO1c1ZnCYu X-Received: by 2002:a05:600c:5251:b0:499:5b04:6920 with SMTP id 5b1f17b1804b1-4995b04695bmr156555135e9.16.1786189808989; Sat, 08 Aug 2026 04:50:08 -0700 (PDT) Received: from localhost.localdomain (dynamic-077-007-004-134.77.7.pool.telefonica.de. [77.7.4.134]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-499542183b2sm241866935e9.4.2026.08.08.04.50.07 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Sat, 08 Aug 2026 04:50:08 -0700 (PDT) From: Karl Mehltretter To: Herbert Xu Cc: Karl Mehltretter , "David S. Miller" , linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] crypto: lskcipher - propagate errors from unaligned crypt Date: Sat, 8 Aug 2026 13:48:48 +0200 Message-Id: <20260808114848.71342-1-kmehltretter@gmail.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The while loop declares a second err variable that shadows the outer one. When the crypt callback fails, the goto out path returns the outer err, which still holds the -ENOMEM value assigned before the successful allocation check. The real error from the cipher is discarded and the caller sees -ENOMEM instead. Drop the inner declaration so the callback error reaches the caller. Verified with a test module that registers an lskcipher whose encrypt callback fails with -EIO and calls it through a misaligned buffer. An unpatched kernel returns -ENOMEM, a patched kernel returns -EIO. Found with Clang's -Wshadow. Fixes: 31865c4c4db2b ("crypto: skcipher - Add lskcipher") Assisted-by: Claude:claude-fable-5 Signed-off-by: Karl Mehltretter --- crypto/lskcipher.c | 1 - 1 file changed, 1 deletion(-) diff --git a/crypto/lskcipher.c b/crypto/lskcipher.c index e4328df6e26c0..a79c9a246e5d7 100644 --- a/crypto/lskcipher.c +++ b/crypto/lskcipher.c @@ -95,7 +95,6 @@ static int crypto_lskcipher_crypt_unaligned( =20 while (len >=3D bs) { unsigned chunk =3D min((unsigned)PAGE_SIZE, len); - int err; =20 if (chunk > cs) chunk &=3D ~(cs - 1); --=20 2.53.0