From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from hall.aurel32.net (hall.aurel32.net [IPv6:2001:bc8:30d7:100::1]) by sourceware.org (Postfix) with ESMTPS id 3AA313858039; Mon, 24 Jan 2022 22:49:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 3AA313858039 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=aurel32.net Authentication-Results: sourceware.org; spf=none smtp.mailfrom=aurel32.net DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=aurel32.net ; s=202004.hall; h=Content-Transfer-Encoding:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Content-Type:From:Reply-To: Subject:Content-ID:Content-Description:X-Debbugs-Cc; bh=ccIh57cpxvwNKnrzZ2K+1xGHjE1hqNPR77B3qyWL8U0=; b=Bh+X0QO6uLe5nQ7GRfkiiMeiRY waIM4yM2uWx0bRXpH/ZPhstaCpyc3Rba8rDViJUJFCZACFuYlQg7HS/hx4CfsLhkA6vxrkR26Psa0 zSPpvRUEmkfPWqL8/bWcb7zN845cZSezC5xA1RC9EUp6Qdr3kyFheGdZaAalgMmtroldH4k7MaVet pOXkyglxKbNMiT0LXUS/1gfx1qEB30PFp7OtoL5uKAhZ+ov2gcUVavt2GfRofYtM8poHA+Rg0Jxxa Rl0doKT+Dm/AW/E935Z7HAF7PjyZYPKyofrW4LToNriMr/waMbgzefi+KLnPPij4Qepm7qN+37o8W pXPvJV1w==; Received: from [2a01:e34:ec5d:a741:8a4c:7c4e:dc4c:1787] (helo=ohm.rr44.fr) by hall.aurel32.net with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1nC88y-00FSYM-04; Mon, 24 Jan 2022 23:49:00 +0100 Received: from aurel32 by ohm.rr44.fr with local (Exim 4.95) (envelope-from ) id 1nC88x-00FwjW-82; Mon, 24 Jan 2022 23:48:59 +0100 From: Aurelien Jarno To: libc-stable@sourceware.org Cc: Siddhesh Poyarekar , Andreas Schwab Subject: [COMMITTED 2.33 6/7] realpath: Avoid overwriting preexisting error (CVE-2021-3998) Date: Mon, 24 Jan 2022 23:48:56 +0100 Message-Id: <20220124224857.3799610-6-aurelien@aurel32.net> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220124224857.3799610-1-aurelien@aurel32.net> References: <20220124224857.3799610-1-aurelien@aurel32.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-13.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_PASS, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libc-stable@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-stable mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Jan 2022 22:49:04 -0000 From: Siddhesh Poyarekar Set errno and failure for paths that are too long only if no other error occurred earlier. Related: BZ #28770 Reviewed-by: Andreas Schwab Signed-off-by: Siddhesh Poyarekar (cherry picked from commit 84d2d0fe20bdf94feed82b21b4d7d136db471f03) --- stdlib/canonicalize.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdlib/canonicalize.c b/stdlib/canonicalize.c index 7a23a51b3a..e2d4244fc7 100644 --- a/stdlib/canonicalize.c +++ b/stdlib/canonicalize.c @@ -404,7 +404,7 @@ error: { if (dest - rname <= get_path_max ()) rname = strcpy (resolved, rname); - else + else if (!failed) { failed = true; __set_errno (ENAMETOOLONG); -- 2.34.1