From patchwork Thu Dec 21 14:23:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Howells X-Patchwork-Id: 182283 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:2483:b0:fb:cd0c:d3e with SMTP id q3csp444636dyi; Thu, 21 Dec 2023 06:24:21 -0800 (PST) X-Google-Smtp-Source: AGHT+IH/qqd20xhB6w4nd8c8xqXUZfO9/mq5L9QfnOagKwJ3irLrQsz0eKFKyZ2qON9m/AcYDLCK X-Received: by 2002:ac8:5ad1:0:b0:425:4043:18b9 with SMTP id d17-20020ac85ad1000000b00425404318b9mr31939495qtd.108.1703168661133; Thu, 21 Dec 2023 06:24:21 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1703168661; cv=none; d=google.com; s=arc-20160816; b=BOo+hAG7kD6pqxwZ/RQyiqTqJdKTwQag7xUNKPayb4XLpqHJeFVhdwa8SoIDkjJj6W cR/2JoWovEPcNGX32XCNXvvD15L1GDmQ41aB+0DzacT0kBzYsZH3gfnmgMj4oyHKdeD4 5V5OtGtjE6w8MGf9AD8kNataW9/f4TdszIZmBDx0sSXnbfd5MNd9U75JXqKKdjnpLQEd 9tw929Xe3i3SloJ6DfQqfKsJidBsP8sMBpg/DxJugGaxzKF/f8mtpyhyw4BPOZYDvt5E 3Y8Sm3FAemL62+nBh1QAj8O7vUfFy+3gyWMw/mWWlE7Z28Cmas4F3RDZD6L3zIgGUsYB xQHg== 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=TW/reE9xPc0IHxJZcKvgnG2qRH9ttpPMFz80v6EmDTg=; fh=S2R8GVI1IIO8qKyDfVy6H2tIX7eiH+KhKS6XKmPiX/0=; b=UGqaG+NGHXyCSY3LOPUmWe3tGNVZZTZbAn82+CLJdlcOgeTOFJnHSZDz6zlLRa9R8q cQg1Me8AXN/p3zp5X/Zd1K+DoExYViVZVvmuENuy7frVnydwutq3rSwODuiBpkMUOodM 9SO14I7/xq0U4swkrmBQh0pqYWVdM/nUAiiCZTEIvfUEKod0Tq0h8u5Ytcr7YpEzSn/q /gSp7msNmXsllNw3l9sJFGXGFeeYylqS8M5vTa5ZTSKjca4N5XjR5IIc2HUCvbzTFwu/ /6VfZraH3V6Lj36F1fGuO4fXu9L0/NcEOOq5BHpnIX8khWgGJXFHjMsoiONUnJKDOfgV h2+g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b="JHPABv/z"; spf=pass (google.com: domain of linux-kernel+bounces-8565-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-8565-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id f1-20020ac85d01000000b004261067bf5dsi2227226qtx.709.2023.12.21.06.24.20 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 21 Dec 2023 06:24:21 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-8565-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b="JHPABv/z"; spf=pass (google.com: domain of linux-kernel+bounces-8565-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-8565-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 ny.mirrors.kernel.org (Postfix) with ESMTPS id BECA81C242BF for ; Thu, 21 Dec 2023 14:24:20 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 28E9D36099; Thu, 21 Dec 2023 14:24:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="JHPABv/z" 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 817006D6F2 for ; Thu, 21 Dec 2023 14:24:02 +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=1703168641; 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=TW/reE9xPc0IHxJZcKvgnG2qRH9ttpPMFz80v6EmDTg=; b=JHPABv/zyo5lbHovFzdXwhDDSaejD76wKkk/mZKGhGBWaURdnEuHUnoXgTcy0u7nqdLMwY My7yfWO89uQakwshfuy8PkxgOi3FcFJjY+at+ZyqDhQYioHdaQhy1bLEOpUx65F/5+6nBt ODPhnVrbdoqLS0yAYF5w7DPyJGdg7Sw= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-374-zQG30YRBP3awbjWww4paEA-1; Thu, 21 Dec 2023 09:23:55 -0500 X-MC-Unique: zQG30YRBP3awbjWww4paEA-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 00113101A555; Thu, 21 Dec 2023 14:23:55 +0000 (UTC) Received: from warthog.procyon.org.uk (unknown [10.39.195.169]) by smtp.corp.redhat.com (Postfix) with ESMTP id 48543492BC6; Thu, 21 Dec 2023 14:23:53 +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: Anastasia Belova , Marc Dionne cc: 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: <1700861.1703168632.1@warthog.procyon.org.uk> Date: Thu, 21 Dec 2023 14:23:52 +0000 Message-ID: <1700862.1703168632@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: 1785901781882210266 X-GMAIL-MSGID: 1785901781882210266 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 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] Reviewed-by: Jeffrey Altman Reviewed-by: Jeffrey Altman --- 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: