File CVE-2025-5917.patch of Package libarchive.41018
From 14f8dca480161a118360955f8958e1dda05a6aba Mon Sep 17 00:00:00 2001 From: Brian Campbell <Brian.Campbell@ed.ac.uk> Date: Thu, 24 Apr 2025 10:46:40 +0100 Subject: [PATCH] Fix overflow in build_ustar_entry The calculations for the suffix and prefix can increment the endpoint for a trailing slash. Hence the limits used should be one lower than the maximum number of bytes. --- libarchive/archive_write_set_format_pax.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) Index: libarchive-3.3.3/libarchive/archive_write_set_format_pax.c =================================================================== --- libarchive-3.3.3.orig/libarchive/archive_write_set_format_pax.c +++ libarchive-3.3.3/libarchive/archive_write_set_format_pax.c @@ -1467,7 +1467,7 @@ build_ustar_entry_name(char *dest, const const char *filename, *filename_end; char *p; int need_slash = 0; /* Was there a trailing slash? */ - size_t suffix_length = 99; + size_t suffix_length = 98; /* 99 - 1 for trailing slash */ size_t insert_length; /* Length of additional dir element to be added. */ @@ -1519,7 +1519,7 @@ build_ustar_entry_name(char *dest, const /* Step 2: Locate the "prefix" section of the dirname, including * trailing '/'. */ prefix = src; - prefix_end = prefix + 155; + prefix_end = prefix + 154 /* 155 - 1 for trailing / */; if (prefix_end > filename) prefix_end = filename; while (prefix_end > prefix && *prefix_end != '/')