From patchwork Thu Dec 21 15:09:31 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Howells X-Patchwork-Id: 182288 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:2483:b0:fb:cd0c:d3e with SMTP id q3csp476205dyi; Thu, 21 Dec 2023 07:12:00 -0800 (PST) X-Google-Smtp-Source: AGHT+IGiPQQfAjpicOuS/z22W+/W8jXRfoDTNyGWQMnLP+C08ZPFZMEW1AefGrkXCvqHLIy4Gjyl X-Received: by 2002:a05:6a00:10d1:b0:6ce:5fc9:8d8d with SMTP id d17-20020a056a0010d100b006ce5fc98d8dmr13051371pfu.14.1703171520039; Thu, 21 Dec 2023 07:12:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1703171520; cv=none; d=google.com; s=arc-20160816; b=Txx+8mjVxFJEFI+DNPhuxUFlYOgfq4yX3JJaxVpknxA5qC6uTAAEE4aqB46bcjmpO2 /34L240bJrrbyj458ESdUryjhWdKDMwUb+4mDThK1sfBaNmZogHul0GEjf+QmyA7RXk4 Z0YHXc2ee7PjRwe2Jz9VY0fnSlMk/0Sml8naJbLNUkB/HHlPRUzVewShhRBWJgvV5aFQ fqyup22jOZDX5+TbMAueIrzhrl3JspRqAS4lyKXiNvj0lHIsqPNCu4VI4TyQC6w3w12O aVstOCM/NwZpIjFXoZkObw6GjxBBf/4ebMt7N0LY6Izr7M4Kq0+RJKYA/Ey5NDVY1C8i Y/3Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=message-id:date:content-transfer-encoding:content-id:mime-version :list-unsubscribe:list-subscribe:list-id:precedence:subject:cc:to :from:organization:dkim-signature; bh=3Le+gA8/eXxjZEgbRfZ5PEeY/UYos/EZllx1bsLSYMw=; fh=ZrvD/nmviUF1ACRYVx1PBY9D1PjcU7f1LZ0aVgmpR00=; b=OVPPwM5nswzdybgI7ivIs8P80hXGb5F2H2ATyzNLi+dum00/YvYU1HJhcw0nC84gQT x0sgZxBoOBlzeHEsf7O8yoB4mF5iHmL463k5hB7/r4gJ+OBE+7MAIIKa7zaeG8W5oEd6 5fdg0v+Maq9tfPRGx3ChyNeAitK+ZSO56CXIqFYXL9bBUN5V04om8a4NZdO5j9s+ck6Q R2uTQkrD9AyecBx6ty9Kpx/NZHnftOW3RcCPsGWtpFx7kTLpoz59dbzikE2+kcAlxHo1 +yE0e5FcBK+COD473EMQGNF3JBBRfP0merU/xrIfUpZyBBZanNeQdFOlDDMdBIwLAgJw HOLg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=EPEvnXY0; spf=pass (google.com: domain of linux-kernel+bounces-8620-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-8620-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org. [2604:1380:40f1:3f00::1]) by mx.google.com with ESMTPS id z20-20020a637e14000000b005c685a3f4acsi1632794pgc.887.2023.12.21.07.11.59 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 21 Dec 2023 07:12:00 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-8620-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) client-ip=2604:1380:40f1:3f00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=EPEvnXY0; spf=pass (google.com: domain of linux-kernel+bounces-8620-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-8620-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sy.mirrors.kernel.org (Postfix) with ESMTPS id B9D49B23CAA for ; Thu, 21 Dec 2023 15:10:12 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 1AC2153A05; Thu, 21 Dec 2023 15:09:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="EPEvnXY0" X-Original-To: linux-kernel@vger.kernel.org Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9432B482EA for ; Thu, 21 Dec 2023 15:09:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1703171379; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3Le+gA8/eXxjZEgbRfZ5PEeY/UYos/EZllx1bsLSYMw=; b=EPEvnXY05UusPravG+BHaI5ogtRKJweb4G0bjHeavN6s9MNe8zHk4np9b7yAzEHUP0XmKk cEg63sn/++3QScFWjep7/8085dnHUIeeqda5uFIPP0pbQQ/GMIojoaNukT20/OHKGzqWdk 0C3KWhXgrU1P/pS1hge9yHSoi/tTJf4= Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-394-cLcz9jdNOGCqSLHoOXu-xQ-1; Thu, 21 Dec 2023 10:09:33 -0500 X-MC-Unique: cLcz9jdNOGCqSLHoOXu-xQ-1 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 4E5643813BD2; Thu, 21 Dec 2023 15:09:33 +0000 (UTC) Received: from warthog.procyon.org.uk (unknown [10.39.195.169]) by smtp.corp.redhat.com (Postfix) with ESMTP id E34D7492BC6; Thu, 21 Dec 2023 15:09:31 +0000 (UTC) Organization: Red Hat UK Ltd. Registered Address: Red Hat UK Ltd, Amberley Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United Kingdom. Registered in England and Wales under Company Registration No. 3798903 From: David Howells To: torvalds@linux-foundation.org cc: Anastasia Belova , Marc Dionne , dhowells@redhat.com, linux-afs@lists.infradead.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, lvc-project@linuxtesting.org Subject: [PATCH] afs: Fix overwriting of result of DNS query Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-ID: <1842327.1703171371.1@warthog.procyon.org.uk> Date: Thu, 21 Dec 2023 15:09:31 +0000 Message-ID: <1842328.1703171371@warthog.procyon.org.uk> X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.9 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1785904779828209679 X-GMAIL-MSGID: 1785904779828209679 Hi Linus, Could you apply this fix, please? Thanks, David --- In afs_update_cell(), ret is the result of the DNS lookup and the errors are to be handled by a switch - however, the value gets clobbered in between by setting it to -ENOMEM in case afs_alloc_vlserver_list() fails. Fix this by moving the setting of -ENOMEM into the error handling for OOM failure. Further, only do it if we don't have an alternative error to return. Found by Linux Verification Center (linuxtesting.org) with SVACE. Based on a patch from Anastasia Belova[1]. Fixes: d5c32c89b208 ("afs: Fix cell DNS lookup") Signed-off-by: David Howells Reviewed-by: Jeffrey Altman cc: Anastasia Belova cc: Marc Dionne cc: linux-afs@lists.infradead.org cc: lvc-project@linuxtesting.org Link: https://lore.kernel.org/r/20231221085849.1463-1-abelova@astralinux.ru/ [1] Link: https://lore.kernel.org/r/1700862.1703168632@warthog.procyon.org.uk/ # v1 --- fs/afs/cell.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/fs/afs/cell.c b/fs/afs/cell.c index 988c2ac7cece..926cb1188eba 100644 --- a/fs/afs/cell.c +++ b/fs/afs/cell.c @@ -409,10 +409,12 @@ static int afs_update_cell(struct afs_cell *cell) if (ret == -ENOMEM) goto out_wake; - ret = -ENOMEM; vllist = afs_alloc_vlserver_list(0); - if (!vllist) + if (!vllist) { + if (ret >= 0) + ret = -ENOMEM; goto out_wake; + } switch (ret) { case -ENODATA: