]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
realpath: Avoid overwriting preexisting error (CVE-2021-3998)
authorSiddhesh Poyarekar <siddhesh@sourceware.org>
Mon, 24 Jan 2022 16:06:41 +0000 (21:36 +0530)
committerSiddhesh Poyarekar <siddhesh@sourceware.org>
Mon, 24 Jan 2022 16:14:54 +0000 (21:44 +0530)
Set errno and failure for paths that are too long only if no other error
occurred earlier.

Related: BZ #28770

Reviewed-by: Andreas Schwab <schwab@linux-m68k.org>
Signed-off-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
(cherry picked from commit 84d2d0fe20bdf94feed82b21b4d7d136db471f03)

stdlib/canonicalize.c

index 7a23a51b3a395eb321d0ee883689ed5d1afa529b..e2d4244fc7b8fa25b08f14968ed7e7ed3ad29c8c 100644 (file)
@@ -404,7 +404,7 @@ error:
     {
       if (dest - rname <= get_path_max ())
        rname = strcpy (resolved, rname);
-      else
+      else if (!failed)
        {
          failed = true;
          __set_errno (ENAMETOOLONG);