diff options
Diffstat (limited to 'realpath-Avoid-overwriting-preexisting-error-CVE-2021-3998.patch')
-rw-r--r-- | realpath-Avoid-overwriting-preexisting-error-CVE-2021-3998.patch | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/realpath-Avoid-overwriting-preexisting-error-CVE-2021-3998.patch b/realpath-Avoid-overwriting-preexisting-error-CVE-2021-3998.patch new file mode 100644 index 0000000..95c6bd6 --- /dev/null +++ b/realpath-Avoid-overwriting-preexisting-error-CVE-2021-3998.patch @@ -0,0 +1,33 @@ +From d084965adc7baa8ea804427cccf973cea556d697 Mon Sep 17 00:00:00 2001 +From: Siddhesh Poyarekar <siddhesh@sourceware.org> +Date: Mon, 24 Jan 2022 21:36:41 +0530 +Subject: [PATCH] realpath: Avoid overwriting preexisting error (CVE-2021-3998) + +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 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/stdlib/canonicalize.c b/stdlib/canonicalize.c +index 7a23a51..e2d4244 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); +-- +1.8.3.1 + |