pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/archivers/libarchive
Module Name: pkgsrc
Committed By: adam
Date: Thu Mar 26 11:20:08 UTC 2026
Modified Files:
pkgsrc/archivers/libarchive: Makefile.common
pkgsrc/archivers/libarchive/files: Makefile.am Makefile.in NEWS
configure configure.ac
pkgsrc/archivers/libarchive/files/build: version
pkgsrc/archivers/libarchive/files/build/cmake: config.h.in
pkgsrc/archivers/libarchive/files/cpio/test: test_format_newc.c
pkgsrc/archivers/libarchive/files/doc/html: archive_entry.3.html
archive_entry_acl.3.html archive_entry_linkify.3.html
archive_entry_misc.3.html archive_entry_paths.3.html
archive_entry_perms.3.html archive_entry_stat.3.html
archive_entry_time.3.html archive_read.3.html
archive_read_add_passphrase.3.html archive_read_data.3.html
archive_read_disk.3.html archive_read_extract.3.html
archive_read_filter.3.html archive_read_format.3.html
archive_read_free.3.html archive_read_header.3.html
archive_read_new.3.html archive_read_open.3.html
archive_read_set_options.3.html archive_util.3.html
archive_write.3.html archive_write_blocksize.3.html
archive_write_data.3.html archive_write_disk.3.html
archive_write_filter.3.html archive_write_finish_entry.3.html
archive_write_format.3.html archive_write_free.3.html
archive_write_header.3.html archive_write_new.3.html
archive_write_open.3.html archive_write_set_options.3.html
archive_write_set_passphrase.3.html bsdcpio.1.html bsdtar.1.html
cpio.5.html libarchive-formats.5.html libarchive.3.html
libarchive_changes.3.html libarchive_internals.3.html mtree.5.html
tar.5.html
pkgsrc/archivers/libarchive/files/doc/pdf: archive_entry.3.pdf
archive_entry_acl.3.pdf archive_entry_linkify.3.pdf
archive_entry_misc.3.pdf archive_entry_paths.3.pdf
archive_entry_perms.3.pdf archive_entry_stat.3.pdf
archive_entry_time.3.pdf archive_read.3.pdf
archive_read_add_passphrase.3.pdf archive_read_data.3.pdf
archive_read_disk.3.pdf archive_read_extract.3.pdf
archive_read_filter.3.pdf archive_read_format.3.pdf
archive_read_free.3.pdf archive_read_header.3.pdf
archive_read_new.3.pdf archive_read_open.3.pdf
archive_read_set_options.3.pdf archive_util.3.pdf
archive_write.3.pdf archive_write_blocksize.3.pdf
archive_write_data.3.pdf archive_write_disk.3.pdf
archive_write_filter.3.pdf archive_write_finish_entry.3.pdf
archive_write_format.3.pdf archive_write_free.3.pdf
archive_write_header.3.pdf archive_write_new.3.pdf
archive_write_open.3.pdf archive_write_set_options.3.pdf
archive_write_set_passphrase.3.pdf bsdcpio.1.pdf bsdtar.1.pdf
cpio.5.pdf libarchive-formats.5.pdf libarchive.3.pdf
libarchive_changes.3.pdf libarchive_internals.3.pdf mtree.5.pdf
tar.5.pdf
pkgsrc/archivers/libarchive/files/libarchive: archive.h archive_acl.c
archive_cryptor_private.h archive_entry.h archive_hmac.c
archive_read_open_filename.c archive_read_support_filter_program.c
archive_read_support_format_7zip.c
archive_read_support_format_cab.c archive_read_support_format_lha.c
archive_read_support_format_mtree.c
archive_read_support_format_rar5.c archive_string.c
archive_write_disk_posix.c archive_write_set_format_gnutar.c
archive_write_set_format_ustar.c archive_write_set_format_v7tar.c
archive_write_set_format_zip.c
pkgsrc/archivers/libarchive/files/libarchive/test: CMakeLists.txt
list.h test_archive_string_conversion.c
test_gnutar_filename_encoding.c test_read_format_7zip.c
test_ustar_filename_encoding.c test_write_disk.c
test_write_disk_perms.c test_zip_filename_encoding.c
pkgsrc/archivers/libarchive/files/test_utils: test_common.h test_main.c
pkgsrc/archivers/libarchive/files/unzip: bsdunzip.c
Log Message:
libarchive: updated to 3.8.6
Libarchive 3.8.6 is a security and bugfix release.
Notable fixes:
libarchive: fix incompatibility with Nettle 4.x
libarchive: fix NULL pointer dereference in archive_acl_from_text_w()
bsdunzip: fix ISO week year and Gregorian year confusion
7zip: ix SEGV in check_7zip_header_in_sfx via ELF offset validation
7zip: fix out-of-bounds access on ELF 64-bit header
RAR5 reader: fix infinite loop in rar5 decompression
RAR5 reader: fix potential memory leak
RAR5: fix SIGSEGV when archive_read_support_format_rar5 is called twice
CAB reader: fix memory leak on repeated calls to archive_read_support_format_cab
mtree reader: Fix file descriptor leak in mtree parser cleanup
various small bugfixes in code and documentation
To generate a diff of this commit:
cvs rdiff -u -r1.26 -r1.27 pkgsrc/archivers/libarchive/Makefile.common
cvs rdiff -u -r1.23 -r1.24 pkgsrc/archivers/libarchive/files/Makefile.am
cvs rdiff -u -r1.25 -r1.26 pkgsrc/archivers/libarchive/files/Makefile.in \
pkgsrc/archivers/libarchive/files/NEWS
cvs rdiff -u -r1.34 -r1.35 pkgsrc/archivers/libarchive/files/configure
cvs rdiff -u -r1.33 -r1.34 pkgsrc/archivers/libarchive/files/configure.ac
cvs rdiff -u -r1.20 -r1.21 pkgsrc/archivers/libarchive/files/build/version
cvs rdiff -u -r1.16 -r1.17 \
pkgsrc/archivers/libarchive/files/build/cmake/config.h.in
cvs rdiff -u -r1.11 -r1.12 \
pkgsrc/archivers/libarchive/files/cpio/test/test_format_newc.c
cvs rdiff -u -r1.20 -r1.21 \
pkgsrc/archivers/libarchive/files/doc/html/archive_entry.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_read.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_read_disk.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_util.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_write.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_write_disk.3.html \
pkgsrc/archivers/libarchive/files/doc/html/bsdcpio.1.html \
pkgsrc/archivers/libarchive/files/doc/html/bsdtar.1.html \
pkgsrc/archivers/libarchive/files/doc/html/cpio.5.html \
pkgsrc/archivers/libarchive/files/doc/html/libarchive-formats.5.html \
pkgsrc/archivers/libarchive/files/doc/html/libarchive.3.html \
pkgsrc/archivers/libarchive/files/doc/html/libarchive_internals.3.html \
pkgsrc/archivers/libarchive/files/doc/html/mtree.5.html \
pkgsrc/archivers/libarchive/files/doc/html/tar.5.html
cvs rdiff -u -r1.19 -r1.20 \
pkgsrc/archivers/libarchive/files/doc/html/archive_entry_acl.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_entry_linkify.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_entry_paths.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_entry_perms.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_entry_stat.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_entry_time.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_read_data.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_read_extract.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_read_filter.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_read_format.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_read_free.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_read_header.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_read_new.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_read_open.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_read_set_options.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_write_blocksize.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_write_data.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_write_filter.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_write_finish_entry.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_write_format.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_write_free.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_write_header.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_write_new.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_write_open.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_options.3.html \
pkgsrc/archivers/libarchive/files/doc/html/libarchive_changes.3.html
cvs rdiff -u -r1.14 -r1.15 \
pkgsrc/archivers/libarchive/files/doc/html/archive_entry_misc.3.html
cvs rdiff -u -r1.16 -r1.17 \
pkgsrc/archivers/libarchive/files/doc/html/archive_read_add_passphrase.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_passphrase.3.html
cvs rdiff -u -r1.20 -r1.21 \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_entry.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_read.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_disk.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_util.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_write.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_disk.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/bsdcpio.1.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/bsdtar.1.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/cpio.5.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/libarchive-formats.5.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/libarchive.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/libarchive_internals.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/mtree.5.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/tar.5.pdf
cvs rdiff -u -r1.19 -r1.20 \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_entry_acl.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_entry_linkify.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_entry_paths.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_entry_perms.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_entry_stat.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_entry_time.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_data.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_extract.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_filter.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_format.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_free.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_header.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_new.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_open.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_set_options.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_blocksize.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_data.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_filter.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_finish_entry.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_format.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_free.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_header.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_new.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_open.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_set_options.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/libarchive_changes.3.pdf
cvs rdiff -u -r1.14 -r1.15 \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_entry_misc.3.pdf
cvs rdiff -u -r1.16 -r1.17 \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_add_passphrase.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_set_passphrase.3.pdf
cvs rdiff -u -r1.26 -r1.27 \
pkgsrc/archivers/libarchive/files/libarchive/archive.h
cvs rdiff -u -r1.10 -r1.11 \
pkgsrc/archivers/libarchive/files/libarchive/archive_acl.c \
pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_cab.c \
pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_gnutar.c
cvs rdiff -u -r1.9 -r1.10 \
pkgsrc/archivers/libarchive/files/libarchive/archive_cryptor_private.h \
pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_rar5.c
cvs rdiff -u -r1.22 -r1.23 \
pkgsrc/archivers/libarchive/files/libarchive/archive_entry.h
cvs rdiff -u -r1.4 -r1.5 \
pkgsrc/archivers/libarchive/files/libarchive/archive_hmac.c
cvs rdiff -u -r1.13 -r1.14 \
pkgsrc/archivers/libarchive/files/libarchive/archive_read_open_filename.c \
pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_zip.c
cvs rdiff -u -r1.7 -r1.8 \
pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_program.c \
pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_v7tar.c
cvs rdiff -u -r1.15 -r1.16 \
pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_7zip.c
cvs rdiff -u -r1.14 -r1.15 \
pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_lha.c
cvs rdiff -u -r1.19 -r1.20 \
pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_mtree.c
cvs rdiff -u -r1.18 -r1.19 \
pkgsrc/archivers/libarchive/files/libarchive/archive_string.c \
pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_posix.c
cvs rdiff -u -r1.11 -r1.12 \
pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_ustar.c
cvs rdiff -u -r1.18 -r1.19 \
pkgsrc/archivers/libarchive/files/libarchive/test/CMakeLists.txt
cvs rdiff -u -r1.21 -r1.22 \
pkgsrc/archivers/libarchive/files/libarchive/test/list.h
cvs rdiff -u -r1.7 -r1.8 \
pkgsrc/archivers/libarchive/files/libarchive/test/test_archive_string_conversion.c
cvs rdiff -u -r1.4 -r1.5 \
pkgsrc/archivers/libarchive/files/libarchive/test/test_gnutar_filename_encoding.c \
pkgsrc/archivers/libarchive/files/libarchive/test/test_ustar_filename_encoding.c \
pkgsrc/archivers/libarchive/files/libarchive/test/test_zip_filename_encoding.c
cvs rdiff -u -r1.10 -r1.11 \
pkgsrc/archivers/libarchive/files/libarchive/test/test_read_format_7zip.c \
pkgsrc/archivers/libarchive/files/libarchive/test/test_write_disk_perms.c
cvs rdiff -u -r1.6 -r1.7 \
pkgsrc/archivers/libarchive/files/libarchive/test/test_write_disk.c
cvs rdiff -u -r1.13 -r1.14 \
pkgsrc/archivers/libarchive/files/test_utils/test_common.h
cvs rdiff -u -r1.14 -r1.15 \
pkgsrc/archivers/libarchive/files/test_utils/test_main.c
cvs rdiff -u -r1.10 -r1.11 pkgsrc/archivers/libarchive/files/unzip/bsdunzip.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: pkgsrc/archivers/libarchive/Makefile.common
diff -u pkgsrc/archivers/libarchive/Makefile.common:1.26 pkgsrc/archivers/libarchive/Makefile.common:1.27
--- pkgsrc/archivers/libarchive/Makefile.common:1.26 Tue Jan 6 11:55:20 2026
+++ pkgsrc/archivers/libarchive/Makefile.common Thu Mar 26 11:20:04 2026
@@ -1,8 +1,8 @@
-# $NetBSD: Makefile.common,v 1.26 2026/01/06 11:55:20 adam Exp $
+# $NetBSD: Makefile.common,v 1.27 2026/03/26 11:20:04 adam Exp $
# used by archivers/bsdtar/Makefile
# used by archivers/libarchive/Makefile
-DISTNAME= libarchive-3.8.5
+DISTNAME= libarchive-3.8.6
CATEGORIES= archivers
MASTER_SITES= https://www.libarchive.org/downloads/
DISTFILES= # empty
Index: pkgsrc/archivers/libarchive/files/Makefile.am
diff -u pkgsrc/archivers/libarchive/files/Makefile.am:1.23 pkgsrc/archivers/libarchive/files/Makefile.am:1.24
--- pkgsrc/archivers/libarchive/files/Makefile.am:1.23 Tue Dec 23 14:01:21 2025
+++ pkgsrc/archivers/libarchive/files/Makefile.am Thu Mar 26 11:20:04 2026
@@ -516,6 +516,7 @@ libarchive_test_SOURCES= \
libarchive/test/test_read_format_lha_bugfix_0.c \
libarchive/test/test_read_format_lha_filename.c \
libarchive/test/test_read_format_lha_filename_utf16.c \
+ libarchive/test/test_read_format_lha_oversize_header.c \
libarchive/test/test_read_format_mtree.c \
libarchive/test/test_read_format_mtree_crash747.c \
libarchive/test/test_read_format_pax_bz2.c \
@@ -528,6 +529,7 @@ libarchive_test_SOURCES= \
libarchive/test/test_read_format_rar_invalid1.c \
libarchive/test/test_read_format_rar_overflow.c \
libarchive/test/test_read_format_rar5.c \
+ libarchive/test/test_read_format_rar5_loop_bug.c \
libarchive/test/test_read_format_raw.c \
libarchive/test/test_read_format_tar.c \
libarchive/test/test_read_format_tar_V_negative_size.c \
@@ -829,9 +831,11 @@ libarchive_test_EXTRA_DIST=\
libarchive/test/test_read_format_7zip_lzma2_sparc.7z.uu \
libarchive/test/test_read_format_7zip_malformed.7z.uu \
libarchive/test/test_read_format_7zip_malformed2.7z.uu \
+ libarchive/test/test_read_format_7zip_malformed3.7z.uu \
libarchive/test/test_read_format_7zip_packinfo_digests.7z.uu \
libarchive/test/test_read_format_7zip_ppmd.7z.uu \
libarchive/test/test_read_format_7zip_sfx_elf.elf.uu \
+ libarchive/test/test_read_format_7zip_sfx_elf64trunc.elf.uu \
libarchive/test/test_read_format_7zip_sfx_modified_pe.exe.uu \
libarchive/test/test_read_format_7zip_sfx_pe.exe.uu \
libarchive/test/test_read_format_7zip_solid_zstd.7z.uu \
@@ -893,6 +897,7 @@ libarchive_test_EXTRA_DIST=\
libarchive/test/test_read_format_lha_lh0.lzh.uu \
libarchive/test/test_read_format_lha_lh6.lzh.uu \
libarchive/test/test_read_format_lha_lh7.lzh.uu \
+ libarchive/test/test_read_format_lha_oversize_header.lzh.uu \
libarchive/test/test_read_format_lha_withjunk.lzh.uu \
libarchive/test/test_read_format_mtree.mtree.uu \
libarchive/test/test_read_format_mtree_nomagic.mtree.uu \
@@ -947,6 +952,7 @@ libarchive_test_EXTRA_DIST=\
libarchive/test/test_read_format_rar5_invalid_dict_reference.rar.uu \
libarchive/test/test_read_format_rar5_leftshift1.rar.uu \
libarchive/test/test_read_format_rar5_leftshift2.rar.uu \
+ libarchive/test/test_read_format_rar5_loop_bug.rar.uu \
libarchive/test/test_read_format_rar5_multiarchive.part01.rar.uu \
libarchive/test/test_read_format_rar5_multiarchive.part02.rar.uu \
libarchive/test/test_read_format_rar5_multiarchive.part03.rar.uu \
Index: pkgsrc/archivers/libarchive/files/Makefile.in
diff -u pkgsrc/archivers/libarchive/files/Makefile.in:1.25 pkgsrc/archivers/libarchive/files/Makefile.in:1.26
--- pkgsrc/archivers/libarchive/files/Makefile.in:1.25 Tue Dec 23 14:01:21 2025
+++ pkgsrc/archivers/libarchive/files/Makefile.in Thu Mar 26 11:20:04 2026
@@ -951,6 +951,7 @@ am__libarchive_test_SOURCES_DIST = libar
libarchive/test/test_read_format_lha_bugfix_0.c \
libarchive/test/test_read_format_lha_filename.c \
libarchive/test/test_read_format_lha_filename_utf16.c \
+ libarchive/test/test_read_format_lha_oversize_header.c \
libarchive/test/test_read_format_mtree.c \
libarchive/test/test_read_format_mtree_crash747.c \
libarchive/test/test_read_format_pax_bz2.c \
@@ -963,6 +964,7 @@ am__libarchive_test_SOURCES_DIST = libar
libarchive/test/test_read_format_rar_invalid1.c \
libarchive/test/test_read_format_rar_overflow.c \
libarchive/test/test_read_format_rar5.c \
+ libarchive/test/test_read_format_rar5_loop_bug.c \
libarchive/test/test_read_format_raw.c \
libarchive/test/test_read_format_tar.c \
libarchive/test/test_read_format_tar_V_negative_size.c \
@@ -1395,6 +1397,7 @@ am_libarchive_test_OBJECTS = $(am__objec
libarchive/test/test-test_read_format_lha_bugfix_0.$(OBJEXT) \
libarchive/test/test-test_read_format_lha_filename.$(OBJEXT) \
libarchive/test/test-test_read_format_lha_filename_utf16.$(OBJEXT) \
+ libarchive/test/test-test_read_format_lha_oversize_header.$(OBJEXT) \
libarchive/test/test-test_read_format_mtree.$(OBJEXT) \
libarchive/test/test-test_read_format_mtree_crash747.$(OBJEXT) \
libarchive/test/test-test_read_format_pax_bz2.$(OBJEXT) \
@@ -1407,6 +1410,7 @@ am_libarchive_test_OBJECTS = $(am__objec
libarchive/test/test-test_read_format_rar_invalid1.$(OBJEXT) \
libarchive/test/test-test_read_format_rar_overflow.$(OBJEXT) \
libarchive/test/test-test_read_format_rar5.$(OBJEXT) \
+ libarchive/test/test-test_read_format_rar5_loop_bug.$(OBJEXT) \
libarchive/test/test-test_read_format_raw.$(OBJEXT) \
libarchive/test/test-test_read_format_tar.$(OBJEXT) \
libarchive/test/test-test_read_format_tar_V_negative_size.$(OBJEXT) \
@@ -2056,11 +2060,13 @@ am__depfiles_remade = cat/$(DEPDIR)/bsdc
libarchive/test/$(DEPDIR)/test-test_read_format_lha_bugfix_0.Po \
libarchive/test/$(DEPDIR)/test-test_read_format_lha_filename.Po \
libarchive/test/$(DEPDIR)/test-test_read_format_lha_filename_utf16.Po \
+ libarchive/test/$(DEPDIR)/test-test_read_format_lha_oversize_header.Po \
libarchive/test/$(DEPDIR)/test-test_read_format_mtree.Po \
libarchive/test/$(DEPDIR)/test-test_read_format_mtree_crash747.Po \
libarchive/test/$(DEPDIR)/test-test_read_format_pax_bz2.Po \
libarchive/test/$(DEPDIR)/test-test_read_format_rar.Po \
libarchive/test/$(DEPDIR)/test-test_read_format_rar5.Po \
+ libarchive/test/$(DEPDIR)/test-test_read_format_rar5_loop_bug.Po \
libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption.Po \
libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_data.Po \
libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_header.Po \
@@ -3277,6 +3283,7 @@ libarchive_test_SOURCES = \
libarchive/test/test_read_format_lha_bugfix_0.c \
libarchive/test/test_read_format_lha_filename.c \
libarchive/test/test_read_format_lha_filename_utf16.c \
+ libarchive/test/test_read_format_lha_oversize_header.c \
libarchive/test/test_read_format_mtree.c \
libarchive/test/test_read_format_mtree_crash747.c \
libarchive/test/test_read_format_pax_bz2.c \
@@ -3289,6 +3296,7 @@ libarchive_test_SOURCES = \
libarchive/test/test_read_format_rar_invalid1.c \
libarchive/test/test_read_format_rar_overflow.c \
libarchive/test/test_read_format_rar5.c \
+ libarchive/test/test_read_format_rar5_loop_bug.c \
libarchive/test/test_read_format_raw.c \
libarchive/test/test_read_format_tar.c \
libarchive/test/test_read_format_tar_V_negative_size.c \
@@ -3582,9 +3590,11 @@ libarchive_test_EXTRA_DIST = \
libarchive/test/test_read_format_7zip_lzma2_sparc.7z.uu \
libarchive/test/test_read_format_7zip_malformed.7z.uu \
libarchive/test/test_read_format_7zip_malformed2.7z.uu \
+ libarchive/test/test_read_format_7zip_malformed3.7z.uu \
libarchive/test/test_read_format_7zip_packinfo_digests.7z.uu \
libarchive/test/test_read_format_7zip_ppmd.7z.uu \
libarchive/test/test_read_format_7zip_sfx_elf.elf.uu \
+ libarchive/test/test_read_format_7zip_sfx_elf64trunc.elf.uu \
libarchive/test/test_read_format_7zip_sfx_modified_pe.exe.uu \
libarchive/test/test_read_format_7zip_sfx_pe.exe.uu \
libarchive/test/test_read_format_7zip_solid_zstd.7z.uu \
@@ -3646,6 +3656,7 @@ libarchive_test_EXTRA_DIST = \
libarchive/test/test_read_format_lha_lh0.lzh.uu \
libarchive/test/test_read_format_lha_lh6.lzh.uu \
libarchive/test/test_read_format_lha_lh7.lzh.uu \
+ libarchive/test/test_read_format_lha_oversize_header.lzh.uu \
libarchive/test/test_read_format_lha_withjunk.lzh.uu \
libarchive/test/test_read_format_mtree.mtree.uu \
libarchive/test/test_read_format_mtree_nomagic.mtree.uu \
@@ -3700,6 +3711,7 @@ libarchive_test_EXTRA_DIST = \
libarchive/test/test_read_format_rar5_invalid_dict_reference.rar.uu \
libarchive/test/test_read_format_rar5_leftshift1.rar.uu \
libarchive/test/test_read_format_rar5_leftshift2.rar.uu \
+ libarchive/test/test_read_format_rar5_loop_bug.rar.uu \
libarchive/test/test_read_format_rar5_multiarchive.part01.rar.uu \
libarchive/test/test_read_format_rar5_multiarchive.part02.rar.uu \
libarchive/test/test_read_format_rar5_multiarchive.part03.rar.uu \
@@ -6018,6 +6030,9 @@ libarchive/test/test-test_read_format_lh
libarchive/test/test-test_read_format_lha_filename_utf16.$(OBJEXT): \
libarchive/test/$(am__dirstamp) \
libarchive/test/$(DEPDIR)/$(am__dirstamp)
+libarchive/test/test-test_read_format_lha_oversize_header.$(OBJEXT): \
+ libarchive/test/$(am__dirstamp) \
+ libarchive/test/$(DEPDIR)/$(am__dirstamp)
libarchive/test/test-test_read_format_mtree.$(OBJEXT): \
libarchive/test/$(am__dirstamp) \
libarchive/test/$(DEPDIR)/$(am__dirstamp)
@@ -6054,6 +6069,9 @@ libarchive/test/test-test_read_format_ra
libarchive/test/test-test_read_format_rar5.$(OBJEXT): \
libarchive/test/$(am__dirstamp) \
libarchive/test/$(DEPDIR)/$(am__dirstamp)
+libarchive/test/test-test_read_format_rar5_loop_bug.$(OBJEXT): \
+ libarchive/test/$(am__dirstamp) \
+ libarchive/test/$(DEPDIR)/$(am__dirstamp)
libarchive/test/test-test_read_format_raw.$(OBJEXT): \
libarchive/test/$(am__dirstamp) \
libarchive/test/$(DEPDIR)/$(am__dirstamp)
@@ -7007,11 +7025,13 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_lha_bugfix_0.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_lha_filename.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_lha_filename_utf16.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_lha_oversize_header.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_mtree.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_mtree_crash747.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_pax_bz2.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_rar.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_rar5.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_rar5_loop_bug.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_data.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_header.Po@am__quote@ # am--include-marker
@@ -13860,6 +13880,20 @@ libarchive/test/test-test_read_format_lh
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o
libarchive/test/test-test_read_format_lha_filename_utf16.obj `if test -f 'libarchive/test/test_read_format_lha_filename_utf16.c'; then $(CYGPATH_W)
'libarchive/test/test_read_format_lha_filename_utf16.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_lha_filename_utf16.c'; fi`
+libarchive/test/test-test_read_format_lha_oversize_header.o: libarchive/test/test_read_format_lha_oversize_header.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT
libarchive/test/test-test_read_format_lha_oversize_header.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_lha_oversize_header.Tpo -c -o
libarchive/test/test-test_read_format_lha_oversize_header.o `test -f 'libarchive/test/test_read_format_lha_oversize_header.c' || echo
'$(srcdir)/'`libarchive/test/test_read_format_lha_oversize_header.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_lha_oversize_header.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_lha_oversize_header.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_lha_oversize_header.c' object='libarchive/test/test-test_read_format_lha_oversize_header.o' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o
libarchive/test/test-test_read_format_lha_oversize_header.o `test -f 'libarchive/test/test_read_format_lha_oversize_header.c' || echo
'$(srcdir)/'`libarchive/test/test_read_format_lha_oversize_header.c
+
+libarchive/test/test-test_read_format_lha_oversize_header.obj: libarchive/test/test_read_format_lha_oversize_header.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT
libarchive/test/test-test_read_format_lha_oversize_header.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_lha_oversize_header.Tpo -c -o
libarchive/test/test-test_read_format_lha_oversize_header.obj `if test -f 'libarchive/test/test_read_format_lha_oversize_header.c'; then $(CYGPATH_W)
'libarchive/test/test_read_format_lha_oversize_header.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_lha_oversize_header.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_lha_oversize_header.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_lha_oversize_header.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_lha_oversize_header.c' object='libarchive/test/test-test_read_format_lha_oversize_header.obj' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o
libarchive/test/test-test_read_format_lha_oversize_header.obj `if test -f 'libarchive/test/test_read_format_lha_oversize_header.c'; then $(CYGPATH_W)
'libarchive/test/test_read_format_lha_oversize_header.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_lha_oversize_header.c'; fi`
+
libarchive/test/test-test_read_format_mtree.o: libarchive/test/test_read_format_mtree.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_mtree.o -MD
-MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_mtree.Tpo -c -o libarchive/test/test-test_read_format_mtree.o `test -f 'libarchive/test/test_read_format_mtree.c' || echo
'$(srcdir)/'`libarchive/test/test_read_format_mtree.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_mtree.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_mtree.Po
@@ -14028,6 +14062,20 @@ libarchive/test/test-test_read_format_ra
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o
libarchive/test/test-test_read_format_rar5.obj `if test -f 'libarchive/test/test_read_format_rar5.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_rar5.c'; else $(CYGPATH_W)
'$(srcdir)/libarchive/test/test_read_format_rar5.c'; fi`
+libarchive/test/test-test_read_format_rar5_loop_bug.o: libarchive/test/test_read_format_rar5_loop_bug.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT
libarchive/test/test-test_read_format_rar5_loop_bug.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_rar5_loop_bug.Tpo -c -o libarchive/test/test-test_read_format_rar5_loop_bug.o `test
-f 'libarchive/test/test_read_format_rar5_loop_bug.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_rar5_loop_bug.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_rar5_loop_bug.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_rar5_loop_bug.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_rar5_loop_bug.c' object='libarchive/test/test-test_read_format_rar5_loop_bug.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o
libarchive/test/test-test_read_format_rar5_loop_bug.o `test -f 'libarchive/test/test_read_format_rar5_loop_bug.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_rar5_loop_bug.c
+
+libarchive/test/test-test_read_format_rar5_loop_bug.obj: libarchive/test/test_read_format_rar5_loop_bug.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT
libarchive/test/test-test_read_format_rar5_loop_bug.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_rar5_loop_bug.Tpo -c -o libarchive/test/test-test_read_format_rar5_loop_bug.obj `if
test -f 'libarchive/test/test_read_format_rar5_loop_bug.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_rar5_loop_bug.c'; else $(CYGPATH_W)
'$(srcdir)/libarchive/test/test_read_format_rar5_loop_bug.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_rar5_loop_bug.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_rar5_loop_bug.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_rar5_loop_bug.c' object='libarchive/test/test-test_read_format_rar5_loop_bug.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o
libarchive/test/test-test_read_format_rar5_loop_bug.obj `if test -f 'libarchive/test/test_read_format_rar5_loop_bug.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_rar5_loop_bug.c'; else
$(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_rar5_loop_bug.c'; fi`
+
libarchive/test/test-test_read_format_raw.o: libarchive/test/test_read_format_raw.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_read_format_raw.o -MD -MP
-MF libarchive/test/$(DEPDIR)/test-test_read_format_raw.Tpo -c -o libarchive/test/test-test_read_format_raw.o `test -f 'libarchive/test/test_read_format_raw.c' || echo
'$(srcdir)/'`libarchive/test/test_read_format_raw.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_raw.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_raw.Po
@@ -17297,11 +17345,13 @@ distclean: distclean-am
-rm -f libarchive/test/$(DEPDIR)/test-test_read_format_lha_bugfix_0.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_read_format_lha_filename.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_read_format_lha_filename_utf16.Po
+ -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_lha_oversize_header.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_read_format_mtree.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_read_format_mtree_crash747.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_read_format_pax_bz2.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_read_format_rar.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_read_format_rar5.Po
+ -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_rar5_loop_bug.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_data.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_header.Po
@@ -18106,11 +18156,13 @@ maintainer-clean: maintainer-clean-am
-rm -f libarchive/test/$(DEPDIR)/test-test_read_format_lha_bugfix_0.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_read_format_lha_filename.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_read_format_lha_filename_utf16.Po
+ -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_lha_oversize_header.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_read_format_mtree.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_read_format_mtree_crash747.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_read_format_pax_bz2.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_read_format_rar.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_read_format_rar5.Po
+ -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_rar5_loop_bug.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_data.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_read_format_rar_encryption_header.Po
Index: pkgsrc/archivers/libarchive/files/NEWS
diff -u pkgsrc/archivers/libarchive/files/NEWS:1.25 pkgsrc/archivers/libarchive/files/NEWS:1.26
--- pkgsrc/archivers/libarchive/files/NEWS:1.25 Tue Jan 6 11:55:21 2026
+++ pkgsrc/archivers/libarchive/files/NEWS Thu Mar 26 11:20:04 2026
@@ -1,3 +1,5 @@
+Mar 10, 2026: libarchive 3.8.6 released
+
Jan 05, 2026: libarchive 3.8.5 released
Dec 01, 2025: libarchive 3.8.4 released
Index: pkgsrc/archivers/libarchive/files/configure
diff -u pkgsrc/archivers/libarchive/files/configure:1.34 pkgsrc/archivers/libarchive/files/configure:1.35
--- pkgsrc/archivers/libarchive/files/configure:1.34 Tue Jan 6 11:55:21 2026
+++ pkgsrc/archivers/libarchive/files/configure Thu Mar 26 11:20:04 2026
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.72 for libarchive 3.8.5.
+# Generated by GNU Autoconf 2.72 for libarchive 3.8.6.
#
# Report bugs to <libarchive-discuss%googlegroups.com@localhost>.
#
@@ -614,8 +614,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='libarchive'
PACKAGE_TARNAME='libarchive'
-PACKAGE_VERSION='3.8.5'
-PACKAGE_STRING='libarchive 3.8.5'
+PACKAGE_VERSION='3.8.6'
+PACKAGE_STRING='libarchive 3.8.6'
PACKAGE_BUGREPORT='libarchive-discuss%googlegroups.com@localhost'
PACKAGE_URL=''
@@ -1442,7 +1442,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-'configure' configures libarchive 3.8.5 to adapt to many kinds of systems.
+'configure' configures libarchive 3.8.6 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1513,7 +1513,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of libarchive 3.8.5:";;
+ short | recursive ) echo "Configuration of libarchive 3.8.6:";;
esac
cat <<\_ACEOF
@@ -1698,7 +1698,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-libarchive configure 3.8.5
+libarchive configure 3.8.6
generated by GNU Autoconf 2.72
Copyright (C) 2023 Free Software Foundation, Inc.
@@ -2518,7 +2518,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by libarchive $as_me 3.8.5, which was
+It was created by libarchive $as_me 3.8.6, which was
generated by GNU Autoconf 2.72. Invocation command line was
$ $0$ac_configure_args_raw
@@ -4002,7 +4002,7 @@ fi
# Define the identity of the package.
PACKAGE='libarchive'
- VERSION='3.8.5'
+ VERSION='3.8.6'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -4099,7 +4099,7 @@ AM_DEFAULT_VERBOSITY=0
# Libtool interface version bumps on any API change, so increments
# whenever libarchive minor version does.
-ARCHIVE_MINOR=$(( (3008005 / 1000) % 1000 ))
+ARCHIVE_MINOR=$(( (3008006 / 1000) % 1000 ))
# Libarchive 2.7 == libtool interface 9 = 2 + 7
# Libarchive 2.8 == libtool interface 10 = 2 + 8
# Libarchive 2.9 == libtool interface 11 = 2 + 9
@@ -4107,7 +4107,7 @@ ARCHIVE_MINOR=$(( (3008005 / 1000) % 100
# Libarchive 3.1 == libtool interface 13
ARCHIVE_INTERFACE=`echo $((13 + ${ARCHIVE_MINOR}))`
# Libarchive revision is bumped on any source change === libtool revision
-ARCHIVE_REVISION=$(( 3008005 % 1000 ))
+ARCHIVE_REVISION=$(( 3008006 % 1000 ))
# Libarchive minor is bumped on any interface addition === libtool age
ARCHIVE_LIBTOOL_VERSION=$ARCHIVE_INTERFACE:$ARCHIVE_REVISION:$ARCHIVE_MINOR
@@ -4116,33 +4116,33 @@ ARCHIVE_LIBTOOL_VERSION=$ARCHIVE_INTERFA
printf "%s\n" "#define __LIBARCHIVE_CONFIG_H_INCLUDED 1" >>confdefs.h
-printf "%s\n" "#define LIBARCHIVE_VERSION_STRING \"3.8.5\"" >>confdefs.h
+printf "%s\n" "#define LIBARCHIVE_VERSION_STRING \"3.8.6\"" >>confdefs.h
-printf "%s\n" "#define LIBARCHIVE_VERSION_NUMBER \"3008005\"" >>confdefs.h
+printf "%s\n" "#define LIBARCHIVE_VERSION_NUMBER \"3008006\"" >>confdefs.h
-printf "%s\n" "#define BSDCPIO_VERSION_STRING \"3.8.5\"" >>confdefs.h
+printf "%s\n" "#define BSDCPIO_VERSION_STRING \"3.8.6\"" >>confdefs.h
-printf "%s\n" "#define BSDTAR_VERSION_STRING \"3.8.5\"" >>confdefs.h
+printf "%s\n" "#define BSDTAR_VERSION_STRING \"3.8.6\"" >>confdefs.h
-printf "%s\n" "#define BSDCAT_VERSION_STRING \"3.8.5\"" >>confdefs.h
+printf "%s\n" "#define BSDCAT_VERSION_STRING \"3.8.6\"" >>confdefs.h
-printf "%s\n" "#define BSDUNZIP_VERSION_STRING \"3.8.5\"" >>confdefs.h
+printf "%s\n" "#define BSDUNZIP_VERSION_STRING \"3.8.6\"" >>confdefs.h
# The shell variables here must be the same as the AC_SUBST() variables
# below, but the shell variable names apparently cannot be the same as
# the m4 macro names above. Why? Ask autoconf.
-BSDCPIO_VERSION_STRING=3.8.5
-BSDTAR_VERSION_STRING=3.8.5
-BSDCAT_VERSION_STRING=3.8.5
-BSDUNZIP_VERSION_STRING=3.8.5
-LIBARCHIVE_VERSION_STRING=3.8.5
-LIBARCHIVE_VERSION_NUMBER=3008005
+BSDCPIO_VERSION_STRING=3.8.6
+BSDTAR_VERSION_STRING=3.8.6
+BSDCAT_VERSION_STRING=3.8.6
+BSDUNZIP_VERSION_STRING=3.8.6
+LIBARCHIVE_VERSION_STRING=3.8.6
+LIBARCHIVE_VERSION_NUMBER=3008006
# Substitute the above version numbers into the various files below.
# Yes, I believe this is the fourth time we define what are essentially
@@ -26364,7 +26364,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by libarchive $as_me 3.8.5, which was
+This file was extended by libarchive $as_me 3.8.6, which was
generated by GNU Autoconf 2.72. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -26432,7 +26432,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
-libarchive config.status 3.8.5
+libarchive config.status 3.8.6
configured by $0, generated by GNU Autoconf 2.72,
with options \\"\$ac_cs_config\\"
Index: pkgsrc/archivers/libarchive/files/configure.ac
diff -u pkgsrc/archivers/libarchive/files/configure.ac:1.33 pkgsrc/archivers/libarchive/files/configure.ac:1.34
--- pkgsrc/archivers/libarchive/files/configure.ac:1.33 Tue Jan 6 11:55:21 2026
+++ pkgsrc/archivers/libarchive/files/configure.ac Thu Mar 26 11:20:05 2026
@@ -4,8 +4,8 @@ dnl First, define all of the version num
dnl In particular, this allows the version macro to be used in AC_INIT
dnl These first two version numbers are updated automatically on each release.
-m4_define([LIBARCHIVE_VERSION_S],[3.8.5])
-m4_define([LIBARCHIVE_VERSION_N],[3008005])
+m4_define([LIBARCHIVE_VERSION_S],[3.8.6])
+m4_define([LIBARCHIVE_VERSION_N],[3008006])
dnl bsdtar and bsdcpio versioning tracks libarchive
m4_define([BSDTAR_VERSION_S],LIBARCHIVE_VERSION_S())
Index: pkgsrc/archivers/libarchive/files/build/version
diff -u pkgsrc/archivers/libarchive/files/build/version:1.20 pkgsrc/archivers/libarchive/files/build/version:1.21
--- pkgsrc/archivers/libarchive/files/build/version:1.20 Tue Jan 6 11:55:21 2026
+++ pkgsrc/archivers/libarchive/files/build/version Thu Mar 26 11:20:05 2026
@@ -1 +1 @@
-3008005
+3008006
Index: pkgsrc/archivers/libarchive/files/build/cmake/config.h.in
diff -u pkgsrc/archivers/libarchive/files/build/cmake/config.h.in:1.16 pkgsrc/archivers/libarchive/files/build/cmake/config.h.in:1.17
--- pkgsrc/archivers/libarchive/files/build/cmake/config.h.in:1.16 Sun Nov 2 08:52:11 2025
+++ pkgsrc/archivers/libarchive/files/build/cmake/config.h.in Thu Mar 26 11:20:05 2026
@@ -642,6 +642,9 @@ typedef uint64_t uintmax_t;
/* Define to 1 if you have the `getea' function. */
#cmakedefine HAVE_GETEA 1
+/* Define to 1 if you have the `getegid' function. */
+#cmakedefine HAVE_GETEGID 1
+
/* Define to 1 if you have the `geteuid' function. */
#cmakedefine HAVE_GETEUID 1
Index: pkgsrc/archivers/libarchive/files/cpio/test/test_format_newc.c
diff -u pkgsrc/archivers/libarchive/files/cpio/test/test_format_newc.c:1.11 pkgsrc/archivers/libarchive/files/cpio/test/test_format_newc.c:1.12
--- pkgsrc/archivers/libarchive/files/cpio/test/test_format_newc.c:1.11 Tue Jul 1 15:14:43 2025
+++ pkgsrc/archivers/libarchive/files/cpio/test/test_format_newc.c Thu Mar 26 11:20:05 2026
@@ -6,6 +6,13 @@
*/
#include "test.h"
+#ifdef HAVE_GETEUID
+#define getuid() geteuid()
+#endif
+#ifdef HAVE_GETEGID
+#define getgid() getegid()
+#endif
+
/* Number of bytes needed to pad 'n' to multiple of 'block', assuming
* that 'block' is a power of two. This trick can be more easily
* remembered as -n & (block - 1), but many compilers quite reasonably
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_entry.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_entry.3.html:1.20 pkgsrc/archivers/libarchive/files/doc/html/archive_entry.3.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/archive_entry.3.html:1.20 Tue Jan 6 11:55:21 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_entry.3.html Thu Mar 26 11:20:05 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:43 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:27 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read.3.html:1.20 pkgsrc/archivers/libarchive/files/doc/html/archive_read.3.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read.3.html:1.20 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read.3.html Thu Mar 26 11:20:05 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:43 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:27 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read_disk.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read_disk.3.html:1.20 pkgsrc/archivers/libarchive/files/doc/html/archive_read_disk.3.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_disk.3.html:1.20 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_disk.3.html Thu Mar 26 11:20:05 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:43 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:28 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_util.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_util.3.html:1.20 pkgsrc/archivers/libarchive/files/doc/html/archive_util.3.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/archive_util.3.html:1.20 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_util.3.html Thu Mar 26 11:20:05 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:44 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:28 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write.3.html:1.20 pkgsrc/archivers/libarchive/files/doc/html/archive_write.3.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write.3.html:1.20 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write.3.html Thu Mar 26 11:20:05 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:44 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:28 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_disk.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_disk.3.html:1.20 pkgsrc/archivers/libarchive/files/doc/html/archive_write_disk.3.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_disk.3.html:1.20 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_disk.3.html Thu Mar 26 11:20:05 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:44 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:28 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/bsdcpio.1.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/bsdcpio.1.html:1.20 pkgsrc/archivers/libarchive/files/doc/html/bsdcpio.1.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/bsdcpio.1.html:1.20 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/bsdcpio.1.html Thu Mar 26 11:20:06 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:46 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:30 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/bsdtar.1.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/bsdtar.1.html:1.20 pkgsrc/archivers/libarchive/files/doc/html/bsdtar.1.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/bsdtar.1.html:1.20 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/bsdtar.1.html Thu Mar 26 11:20:06 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:46 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:30 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/cpio.5.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/cpio.5.html:1.20 pkgsrc/archivers/libarchive/files/doc/html/cpio.5.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/cpio.5.html:1.20 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/cpio.5.html Thu Mar 26 11:20:06 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:45 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:29 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/libarchive-formats.5.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/libarchive-formats.5.html:1.20 pkgsrc/archivers/libarchive/files/doc/html/libarchive-formats.5.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/libarchive-formats.5.html:1.20 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/libarchive-formats.5.html Thu Mar 26 11:20:06 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:45 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:29 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/libarchive.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/libarchive.3.html:1.20 pkgsrc/archivers/libarchive/files/doc/html/libarchive.3.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/libarchive.3.html:1.20 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/libarchive.3.html Thu Mar 26 11:20:06 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:45 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:29 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/libarchive_internals.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/libarchive_internals.3.html:1.20 pkgsrc/archivers/libarchive/files/doc/html/libarchive_internals.3.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/libarchive_internals.3.html:1.20 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/libarchive_internals.3.html Thu Mar 26 11:20:06 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:45 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:29 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/mtree.5.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/mtree.5.html:1.20 pkgsrc/archivers/libarchive/files/doc/html/mtree.5.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/mtree.5.html:1.20 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/mtree.5.html Thu Mar 26 11:20:06 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:45 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:29 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/tar.5.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/tar.5.html:1.20 pkgsrc/archivers/libarchive/files/doc/html/tar.5.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/tar.5.html:1.20 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/tar.5.html Thu Mar 26 11:20:06 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:45 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:30 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_entry_acl.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_entry_acl.3.html:1.19 pkgsrc/archivers/libarchive/files/doc/html/archive_entry_acl.3.html:1.20
--- pkgsrc/archivers/libarchive/files/doc/html/archive_entry_acl.3.html:1.19 Tue Jan 6 11:55:21 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_entry_acl.3.html Thu Mar 26 11:20:05 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:43 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:27 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_entry_linkify.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_entry_linkify.3.html:1.19 pkgsrc/archivers/libarchive/files/doc/html/archive_entry_linkify.3.html:1.20
--- pkgsrc/archivers/libarchive/files/doc/html/archive_entry_linkify.3.html:1.19 Tue Jan 6 11:55:21 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_entry_linkify.3.html Thu Mar 26 11:20:05 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:43 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:27 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_entry_paths.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_entry_paths.3.html:1.19 pkgsrc/archivers/libarchive/files/doc/html/archive_entry_paths.3.html:1.20
--- pkgsrc/archivers/libarchive/files/doc/html/archive_entry_paths.3.html:1.19 Tue Jan 6 11:55:21 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_entry_paths.3.html Thu Mar 26 11:20:05 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:43 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:27 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_entry_perms.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_entry_perms.3.html:1.19 pkgsrc/archivers/libarchive/files/doc/html/archive_entry_perms.3.html:1.20
--- pkgsrc/archivers/libarchive/files/doc/html/archive_entry_perms.3.html:1.19 Tue Jan 6 11:55:21 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_entry_perms.3.html Thu Mar 26 11:20:05 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:43 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:27 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_entry_stat.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_entry_stat.3.html:1.19 pkgsrc/archivers/libarchive/files/doc/html/archive_entry_stat.3.html:1.20
--- pkgsrc/archivers/libarchive/files/doc/html/archive_entry_stat.3.html:1.19 Tue Jan 6 11:55:21 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_entry_stat.3.html Thu Mar 26 11:20:05 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:43 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:27 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_entry_time.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_entry_time.3.html:1.19 pkgsrc/archivers/libarchive/files/doc/html/archive_entry_time.3.html:1.20
--- pkgsrc/archivers/libarchive/files/doc/html/archive_entry_time.3.html:1.19 Tue Jan 6 11:55:21 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_entry_time.3.html Thu Mar 26 11:20:05 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:43 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:27 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read_data.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read_data.3.html:1.19 pkgsrc/archivers/libarchive/files/doc/html/archive_read_data.3.html:1.20
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_data.3.html:1.19 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_data.3.html Thu Mar 26 11:20:05 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:43 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:27 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read_extract.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read_extract.3.html:1.19 pkgsrc/archivers/libarchive/files/doc/html/archive_read_extract.3.html:1.20
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_extract.3.html:1.19 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_extract.3.html Thu Mar 26 11:20:05 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:44 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:28 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read_filter.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read_filter.3.html:1.19 pkgsrc/archivers/libarchive/files/doc/html/archive_read_filter.3.html:1.20
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_filter.3.html:1.19 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_filter.3.html Thu Mar 26 11:20:05 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:44 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:28 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read_format.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read_format.3.html:1.19 pkgsrc/archivers/libarchive/files/doc/html/archive_read_format.3.html:1.20
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_format.3.html:1.19 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_format.3.html Thu Mar 26 11:20:05 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:44 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:28 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read_free.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read_free.3.html:1.19 pkgsrc/archivers/libarchive/files/doc/html/archive_read_free.3.html:1.20
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_free.3.html:1.19 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_free.3.html Thu Mar 26 11:20:05 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:44 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:28 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read_header.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read_header.3.html:1.19 pkgsrc/archivers/libarchive/files/doc/html/archive_read_header.3.html:1.20
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_header.3.html:1.19 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_header.3.html Thu Mar 26 11:20:05 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:44 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:28 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read_new.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read_new.3.html:1.19 pkgsrc/archivers/libarchive/files/doc/html/archive_read_new.3.html:1.20
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_new.3.html:1.19 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_new.3.html Thu Mar 26 11:20:05 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:44 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:28 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read_open.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read_open.3.html:1.19 pkgsrc/archivers/libarchive/files/doc/html/archive_read_open.3.html:1.20
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_open.3.html:1.19 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_open.3.html Thu Mar 26 11:20:05 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:44 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:28 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read_set_options.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read_set_options.3.html:1.19 pkgsrc/archivers/libarchive/files/doc/html/archive_read_set_options.3.html:1.20
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_set_options.3.html:1.19 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_set_options.3.html Thu Mar 26 11:20:05 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:44 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:28 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_blocksize.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_blocksize.3.html:1.19 pkgsrc/archivers/libarchive/files/doc/html/archive_write_blocksize.3.html:1.20
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_blocksize.3.html:1.19 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_blocksize.3.html Thu Mar 26 11:20:05 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:44 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:28 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_data.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_data.3.html:1.19 pkgsrc/archivers/libarchive/files/doc/html/archive_write_data.3.html:1.20
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_data.3.html:1.19 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_data.3.html Thu Mar 26 11:20:05 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:44 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:28 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_filter.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_filter.3.html:1.19 pkgsrc/archivers/libarchive/files/doc/html/archive_write_filter.3.html:1.20
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_filter.3.html:1.19 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_filter.3.html Thu Mar 26 11:20:05 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:44 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:28 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_finish_entry.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_finish_entry.3.html:1.19 pkgsrc/archivers/libarchive/files/doc/html/archive_write_finish_entry.3.html:1.20
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_finish_entry.3.html:1.19 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_finish_entry.3.html Thu Mar 26 11:20:06 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:44 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:28 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_format.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_format.3.html:1.19 pkgsrc/archivers/libarchive/files/doc/html/archive_write_format.3.html:1.20
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_format.3.html:1.19 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_format.3.html Thu Mar 26 11:20:06 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:44 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:29 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_free.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_free.3.html:1.19 pkgsrc/archivers/libarchive/files/doc/html/archive_write_free.3.html:1.20
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_free.3.html:1.19 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_free.3.html Thu Mar 26 11:20:06 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:45 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:29 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_header.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_header.3.html:1.19 pkgsrc/archivers/libarchive/files/doc/html/archive_write_header.3.html:1.20
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_header.3.html:1.19 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_header.3.html Thu Mar 26 11:20:06 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:45 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:29 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_new.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_new.3.html:1.19 pkgsrc/archivers/libarchive/files/doc/html/archive_write_new.3.html:1.20
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_new.3.html:1.19 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_new.3.html Thu Mar 26 11:20:06 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:45 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:29 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_open.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_open.3.html:1.19 pkgsrc/archivers/libarchive/files/doc/html/archive_write_open.3.html:1.20
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_open.3.html:1.19 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_open.3.html Thu Mar 26 11:20:06 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:45 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:29 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_options.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_options.3.html:1.19 pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_options.3.html:1.20
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_options.3.html:1.19 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_options.3.html Thu Mar 26 11:20:06 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:45 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:29 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/libarchive_changes.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/libarchive_changes.3.html:1.19 pkgsrc/archivers/libarchive/files/doc/html/libarchive_changes.3.html:1.20
--- pkgsrc/archivers/libarchive/files/doc/html/libarchive_changes.3.html:1.19 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/libarchive_changes.3.html Thu Mar 26 11:20:06 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:45 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:29 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_entry_misc.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_entry_misc.3.html:1.14 pkgsrc/archivers/libarchive/files/doc/html/archive_entry_misc.3.html:1.15
--- pkgsrc/archivers/libarchive/files/doc/html/archive_entry_misc.3.html:1.14 Tue Jan 6 11:55:21 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_entry_misc.3.html Thu Mar 26 11:20:05 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:43 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:27 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read_add_passphrase.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read_add_passphrase.3.html:1.16 pkgsrc/archivers/libarchive/files/doc/html/archive_read_add_passphrase.3.html:1.17
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_add_passphrase.3.html:1.16 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_add_passphrase.3.html Thu Mar 26 11:20:05 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:43 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:27 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_passphrase.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_passphrase.3.html:1.16 pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_passphrase.3.html:1.17
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_passphrase.3.html:1.16 Tue Jan 6 11:55:22 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_passphrase.3.html Thu Mar 26 11:20:06 2026
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Mon Jan 5 10:42:45 2026 -->
+<!-- CreationDate: Tue Mar 10 09:57:29 2026 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_entry.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_read.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_disk.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_util.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_write.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_disk.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/bsdcpio.1.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/bsdtar.1.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/cpio.5.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/libarchive-formats.5.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/libarchive.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/libarchive_internals.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/mtree.5.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/tar.5.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_entry_acl.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_entry_linkify.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_entry_paths.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_entry_perms.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_entry_stat.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_entry_time.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_data.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_extract.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_filter.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_format.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_free.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_header.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_new.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_open.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_set_options.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_blocksize.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_data.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_filter.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_finish_entry.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_format.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_free.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_header.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_new.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_open.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_set_options.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/libarchive_changes.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_entry_misc.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_add_passphrase.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_set_passphrase.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/libarchive/archive.h
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive.h:1.26 pkgsrc/archivers/libarchive/files/libarchive/archive.h:1.27
--- pkgsrc/archivers/libarchive/files/libarchive/archive.h:1.26 Tue Jan 6 11:55:23 2026
+++ pkgsrc/archivers/libarchive/files/libarchive/archive.h Thu Mar 26 11:20:07 2026
@@ -34,7 +34,7 @@
* assert that ARCHIVE_VERSION_NUMBER >= 2012108.
*/
/* Note: Compiler will complain if this does not match archive_entry.h! */
-#define ARCHIVE_VERSION_NUMBER 3008005
+#define ARCHIVE_VERSION_NUMBER 3008006
#include <sys/stat.h>
#include <stddef.h> /* for wchar_t */
@@ -177,7 +177,7 @@ __LA_DECL int archive_version_number(vo
/*
* Textual name/version of the library, useful for version displays.
*/
-#define ARCHIVE_VERSION_ONLY_STRING "3.8.5"
+#define ARCHIVE_VERSION_ONLY_STRING "3.8.6"
#define ARCHIVE_VERSION_STRING "libarchive " ARCHIVE_VERSION_ONLY_STRING
__LA_DECL const char * archive_version_string(void);
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_acl.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_acl.c:1.10 pkgsrc/archivers/libarchive/files/libarchive/archive_acl.c:1.11
--- pkgsrc/archivers/libarchive/files/libarchive/archive_acl.c:1.10 Sun Nov 2 08:52:14 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_acl.c Thu Mar 26 11:20:07 2026
@@ -1256,8 +1256,12 @@ archive_acl_from_text_w(struct archive_a
tag = 0;
s = field[n].start;
- st = field[n].start + 1;
len = field[n].end - field[n].start;
+ if (len == 0) {
+ ret = ARCHIVE_WARN;
+ continue;
+ }
+ st = s + 1;
switch (*s) {
case L'u':
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_cab.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_cab.c:1.10 pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_cab.c:1.11
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_cab.c:1.10 Tue Jan 6 11:55:23 2026
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_cab.c Thu Mar 26 11:20:07 2026
@@ -383,8 +383,10 @@ archive_read_support_format_cab(struct a
NULL,
NULL);
- if (r != ARCHIVE_OK)
+ if (r != ARCHIVE_OK) {
+ archive_wstring_free(&cab->ws);
free(cab);
+ }
return (ARCHIVE_OK);
}
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_gnutar.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_gnutar.c:1.10 pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_gnutar.c:1.11
--- pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_gnutar.c:1.10 Wed May 21 15:25:51 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_gnutar.c Thu Mar 26 11:20:07 2026
@@ -293,6 +293,17 @@ archive_write_gnutar_header(struct archi
} else
sconv = gnutar->opt_sconv;
+ /* Sanity check. */
+ if (archive_entry_pathname(entry) == NULL
+#if defined(_WIN32) && !defined(__CYGWIN__)
+ && archive_entry_pathname_w(entry) == NULL
+#endif
+ ) {
+ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
+ "Can't record entry in tar file without pathname");
+ return ARCHIVE_FAILED;
+ }
+
/* Only regular files (not hardlinks) have data. */
if (archive_entry_hardlink(entry) != NULL ||
archive_entry_symlink(entry) != NULL ||
@@ -385,17 +396,30 @@ archive_write_gnutar_header(struct archi
r = archive_entry_pathname_l(entry, &(gnutar->pathname),
&(gnutar->pathname_length), sconv);
if (r != 0) {
+ const char* p_mbs;
if (errno == ENOMEM) {
archive_set_error(&a->archive, ENOMEM,
"Can't allocate memory for pathname");
ret = ARCHIVE_FATAL;
goto exit_write_header;
}
- archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
- "Can't translate pathname '%s' to %s",
- archive_entry_pathname(entry),
- archive_string_conversion_charset_name(sconv));
- ret2 = ARCHIVE_WARN;
+ p_mbs = archive_entry_pathname(entry);
+ if (p_mbs) {
+ /* We have a wrongly-encoded MBS pathname.
+ * Warn and use it. */
+ archive_set_error(&a->archive,
+ ARCHIVE_ERRNO_FILE_FORMAT,
+ "Can't translate pathname '%s' to %s", p_mbs,
+ archive_string_conversion_charset_name(sconv));
+ ret2 = ARCHIVE_WARN;
+ } else {
+ /* We have no MBS pathname. Fail. */
+ archive_set_error(&a->archive,
+ ARCHIVE_ERRNO_FILE_FORMAT,
+ "Can't translate pathname to %s",
+ archive_string_conversion_charset_name(sconv));
+ return ARCHIVE_FAILED;
+ }
}
r = archive_entry_uname_l(entry, &(gnutar->uname),
&(gnutar->uname_length), sconv);
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_cryptor_private.h
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_cryptor_private.h:1.9 pkgsrc/archivers/libarchive/files/libarchive/archive_cryptor_private.h:1.10
--- pkgsrc/archivers/libarchive/files/libarchive/archive_cryptor_private.h:1.9 Tue Dec 23 14:01:23 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_cryptor_private.h Thu Mar 26 11:20:07 2026
@@ -109,6 +109,10 @@ typedef struct {
#include <nettle/version.h>
#define ARCHIVE_CRYPTOR_USE_NETTLE 1
+#ifndef AES_MAX_KEY_SIZE
+#define AES_MAX_KEY_SIZE AES256_KEY_SIZE
+#endif
+
typedef struct {
#if NETTLE_VERSION_MAJOR < 3
struct aes_ctx ctx;
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_rar5.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_rar5.c:1.9 pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_rar5.c:1.10
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_rar5.c:1.9 Sun Nov 2 08:52:14 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_rar5.c Thu Mar 26 11:20:07 2026
@@ -375,6 +375,7 @@ static int rar5_read_data_skip(struct ar
static int push_data_ready(struct archive_read* a, struct rar5* rar,
const uint8_t* buf, size_t size, int64_t offset);
static void clear_data_ready_stack(struct rar5* rar);
+static void rar5_deinit(struct rar5* rar);
/* CDE_xxx = Circular Double Ended (Queue) return values. */
enum CDE_RETURN_VALUES {
@@ -429,8 +430,7 @@ static int cdeque_front(struct cdeque* d
return CDE_OUT_OF_BOUNDS;
}
-/* Pushes a new element into the end of this circular deque object. If current
- * size will exceed capacity, the oldest element will be overwritten. */
+/* Pushes a new element into the end of this circular deque object. */
static int cdeque_push_back(struct cdeque* d, void* item) {
if(d == NULL)
return CDE_PARAM;
@@ -554,7 +554,11 @@ static struct filter_info* add_new_filte
return NULL;
}
- cdeque_push_back(&rar->cstate.filters, cdeque_filter(f));
+ if (CDE_OK != cdeque_push_back(&rar->cstate.filters, cdeque_filter(f))) {
+ free(f);
+ return NULL;
+ }
+
return f;
}
@@ -3040,7 +3044,9 @@ static int parse_filter(struct archive_r
if(block_length < 4 ||
block_length > 0x400000 ||
filter_type > FILTER_ARM ||
- !is_valid_filter_block_start(rar, block_start))
+ !is_valid_filter_block_start(rar, block_start) ||
+ (rar->cstate.window_size > 0 &&
+ (ssize_t)block_length > rar->cstate.window_size >> 1))
{
archive_set_error(&ar->archive, ARCHIVE_ERRNO_FILE_FORMAT,
"Invalid filter encountered");
@@ -4328,7 +4334,7 @@ static int rar5_cleanup(struct archive_r
free(rar->vol.push_buf);
free_filters(rar);
- cdeque_free(&rar->cstate.filters);
+ rar5_deinit(rar);
free(rar);
a->format->data = NULL;
@@ -4353,6 +4359,7 @@ static int rar5_has_encrypted_entries(st
return ARCHIVE_READ_FORMAT_ENCRYPTION_DONT_KNOW;
}
+/* Must match deallocations in rar5_deinit */
static int rar5_init(struct rar5* rar) {
memset(rar, 0, sizeof(struct rar5));
@@ -4368,6 +4375,11 @@ static int rar5_init(struct rar5* rar) {
return ARCHIVE_OK;
}
+/* Must match allocations in rar5_init */
+static void rar5_deinit(struct rar5* rar) {
+ cdeque_free(&rar->cstate.filters);
+}
+
int archive_read_support_format_rar5(struct archive *_a) {
struct archive_read* ar;
int ret;
@@ -4404,8 +4416,9 @@ int archive_read_support_format_rar5(str
rar5_has_encrypted_entries);
if(ret != ARCHIVE_OK) {
- (void) rar5_cleanup(ar);
+ rar5_deinit(rar);
+ free(rar);
}
- return ret;
+ return ARCHIVE_OK;
}
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_entry.h
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_entry.h:1.22 pkgsrc/archivers/libarchive/files/libarchive/archive_entry.h:1.23
--- pkgsrc/archivers/libarchive/files/libarchive/archive_entry.h:1.22 Tue Jan 6 11:55:23 2026
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_entry.h Thu Mar 26 11:20:07 2026
@@ -28,7 +28,7 @@
#define ARCHIVE_ENTRY_H_INCLUDED
/* Note: Compiler will complain if this does not match archive.h! */
-#define ARCHIVE_VERSION_NUMBER 3008005
+#define ARCHIVE_VERSION_NUMBER 3008006
/*
* Note: archive_entry.h is for use outside of libarchive; the
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_hmac.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_hmac.c:1.4 pkgsrc/archivers/libarchive/files/libarchive/archive_hmac.c:1.5
--- pkgsrc/archivers/libarchive/files/libarchive/archive_hmac.c:1.4 Sat Oct 19 05:39:58 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_hmac.c Thu Mar 26 11:20:07 2026
@@ -198,6 +198,7 @@ static void __hmac_sha1_cleanup(archive_
}
#elif defined(HAVE_LIBNETTLE) && defined(HAVE_NETTLE_HMAC_H)
+#include <nettle/version.h>
static int
__hmac_sha1_init(archive_hmac_sha1_ctx *ctx, const uint8_t *key, size_t key_len)
@@ -216,7 +217,12 @@ __hmac_sha1_update(archive_hmac_sha1_ctx
static void
__hmac_sha1_final(archive_hmac_sha1_ctx *ctx, uint8_t *out, size_t *out_len)
{
+#if NETTLE_VERSION_MAJOR < 4
hmac_sha1_digest(ctx, (unsigned)*out_len, out);
+#else
+ hmac_sha1_digest(ctx, out);
+ *out_len = SHA1_DIGEST_SIZE;
+#endif
}
static void
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_read_open_filename.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_read_open_filename.c:1.13 pkgsrc/archivers/libarchive/files/libarchive/archive_read_open_filename.c:1.14
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_open_filename.c:1.13 Sun Nov 2 08:52:14 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_open_filename.c Thu Mar 26 11:20:07 2026
@@ -122,13 +122,14 @@ archive_read_open_filenames(struct archi
archive_clear_error(a);
do
{
+ size_t len;
if (filename == NULL)
filename = "";
- mine = calloc(1,
- sizeof(*mine) + strlen(filename));
+ len = strlen(filename);
+ mine = calloc(1, sizeof(*mine) + len);
if (mine == NULL)
goto no_memory;
- strcpy(mine->filename.m, filename);
+ memcpy(mine->filename.m, filename, len + 1);
mine->block_size = block_size;
mine->fd = -1;
mine->buffer = NULL;
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_zip.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_zip.c:1.13 pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_zip.c:1.14
--- pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_zip.c:1.13 Sun Nov 2 08:52:15 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_zip.c Thu Mar 26 11:20:07 2026
@@ -802,6 +802,17 @@ archive_write_zip_header(struct archive_
int version_needed = 10;
#define MIN_VERSION_NEEDED(x) do { if (version_needed < x) { version_needed = x; } } while (0)
+ /* Sanity check. */
+ if (archive_entry_pathname(entry) == NULL
+#if defined(_WIN32) && !defined(__CYGWIN__)
+ && archive_entry_pathname_w(entry) == NULL
+#endif
+ ) {
+ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
+ "Can't record entry in zip file without pathname");
+ return ARCHIVE_FAILED;
+ }
+
/* Ignore types of entries that we don't support. */
type = archive_entry_filetype(entry);
if (type != AE_IFREG && type != AE_IFDIR && type != AE_IFLNK) {
@@ -882,22 +893,33 @@ archive_write_zip_header(struct archive_
return (ARCHIVE_FATAL);
}
- if (sconv != NULL) {
+ {
const char *p;
size_t len;
if (archive_entry_pathname_l(zip->entry, &p, &len, sconv) != 0) {
+ const char* p_mbs;
if (errno == ENOMEM) {
archive_set_error(&a->archive, ENOMEM,
"Can't allocate memory for Pathname");
return (ARCHIVE_FATAL);
}
- archive_set_error(&a->archive,
- ARCHIVE_ERRNO_FILE_FORMAT,
- "Can't translate Pathname '%s' to %s",
- archive_entry_pathname(zip->entry),
- archive_string_conversion_charset_name(sconv));
- ret2 = ARCHIVE_WARN;
+ p_mbs = archive_entry_pathname(zip->entry);
+ if (p_mbs) {
+ /* We have a wrongly-encoded MBS pathname. Warn and use it. */
+ archive_set_error(&a->archive,
+ ARCHIVE_ERRNO_FILE_FORMAT,
+ "Can't translate pathname '%s' to %s", p_mbs,
+ archive_string_conversion_charset_name(sconv));
+ ret2 = ARCHIVE_WARN;
+ } else {
+ /* We have no MBS pathname. Fail. */
+ archive_set_error(&a->archive,
+ ARCHIVE_ERRNO_FILE_FORMAT,
+ "Can't translate pathname to %s",
+ archive_string_conversion_charset_name(sconv));
+ return ARCHIVE_FAILED;
+ }
}
if (len > 0)
archive_entry_set_pathname(zip->entry, p);
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_program.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_program.c:1.7 pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_program.c:1.8
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_program.c:1.7 Sun Nov 2 08:52:14 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_program.c Thu Mar 26 11:20:07 2026
@@ -149,6 +149,8 @@ archive_read_support_filter_program_sign
if (signature != NULL && signature_len > 0) {
state->signature_len = signature_len;
state->signature = malloc(signature_len);
+ if (state->signature == NULL)
+ goto memerr;
memcpy(state->signature, signature, signature_len);
}
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_v7tar.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_v7tar.c:1.7 pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_v7tar.c:1.8
--- pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_v7tar.c:1.7 Sat Oct 19 05:39:59 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_v7tar.c Thu Mar 26 11:20:07 2026
@@ -232,7 +232,11 @@ archive_write_v7tar_header(struct archiv
sconv = v7tar->opt_sconv;
/* Sanity check. */
- if (archive_entry_pathname(entry) == NULL) {
+ if (archive_entry_pathname(entry) == NULL
+#if defined(_WIN32) && !defined(__CYGWIN__)
+ && archive_entry_pathname_w(entry) == NULL
+#endif
+ ) {
archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
"Can't record entry in tar file without pathname");
return (ARCHIVE_FAILED);
@@ -382,15 +386,28 @@ format_header_v7tar(struct archive_write
*/
r = archive_entry_pathname_l(entry, &pp, ©_length, sconv);
if (r != 0) {
+ const char* p_mbs;
if (errno == ENOMEM) {
archive_set_error(&a->archive, ENOMEM,
"Can't allocate memory for Pathname");
return (ARCHIVE_FATAL);
}
- archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
- "Can't translate pathname '%s' to %s",
- pp, archive_string_conversion_charset_name(sconv));
- ret = ARCHIVE_WARN;
+ p_mbs = archive_entry_pathname(entry);
+ if (p_mbs) {
+ /* We have a wrongly-encoded MBS pathname.
+ * Warn and use it. */
+ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
+ "Can't translate pathname '%s' to %s", p_mbs,
+ archive_string_conversion_charset_name(sconv));
+ ret = ARCHIVE_WARN;
+ } else {
+ /* We have no MBS pathname. Fail. */
+ archive_set_error(&a->archive,
+ ARCHIVE_ERRNO_FILE_FORMAT,
+ "Can't translate pathname to %s",
+ archive_string_conversion_charset_name(sconv));
+ return ARCHIVE_FAILED;
+ }
}
if (strict && copy_length < V7TAR_name_size)
memcpy(h + V7TAR_name_offset, pp, copy_length);
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_7zip.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_7zip.c:1.15 pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_7zip.c:1.16
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_7zip.c:1.15 Thu Nov 20 06:08:27 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_7zip.c Thu Mar 26 11:20:07 2026
@@ -34,6 +34,9 @@
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
+#ifdef HAVE_LIMITS_H
+#include <limits.h>
+#endif
#ifdef HAVE_BZLIB_H
#include <bzlib.h>
#endif
@@ -80,7 +83,7 @@
/*
* ELF format
*/
-#define ELF_HDR_MIN_LEN 0x3f
+#define ELF_HDR_MIN_LEN 0x40 /* sizeof(Elf64_Ehdr) */
#define ELF_HDR_EI_CLASS_OFFSET 0x04
#define ELF_HDR_EI_DATA_OFFSET 0x05
@@ -855,13 +858,18 @@ find_elf_data_sec(struct archive_read *a
while (e_shnum > 0) {
name_offset = (*dec32)(h + sec_tbl_offset);
if (name_offset == data_sym_offset) {
+ uint64_t sel_offset;
+
if (format_64) {
- min_addr = (*dec64)(
+ sel_offset = (*dec64)(
h + sec_tbl_offset + 0x18);
} else {
- min_addr = (*dec32)(
+ sel_offset = (*dec32)(
h + sec_tbl_offset + 0x10);
}
+ if (sel_offset > SSIZE_MAX)
+ break;
+ min_addr = (ssize_t)sel_offset;
break;
}
sec_tbl_offset += e_shentsize;
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_lha.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_lha.c:1.14 pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_lha.c:1.15
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_lha.c:1.14 Tue Jan 6 11:55:23 2026
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_lha.c Thu Mar 26 11:20:07 2026
@@ -1101,6 +1101,13 @@ lha_read_file_header_3(struct archive_re
header_crc = lha_crc16(0, p, H3_FIXED_SIZE);
__archive_read_consume(a, H3_FIXED_SIZE);
+ /* Reject rediculously large header */
+ if (lha->header_size > 65536) {
+ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
+ "LHa header size too large");
+ return (ARCHIVE_FATAL);
+ }
+
/* Read extended headers */
err = lha_read_file_extended_header(a, lha, &header_crc, 4,
lha->header_size - H3_FIXED_SIZE, &extdsize);
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_mtree.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_mtree.c:1.19 pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_mtree.c:1.20
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_mtree.c:1.19 Tue Jan 6 11:55:23 2026
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_mtree.c Thu Mar 26 11:20:07 2026
@@ -300,7 +300,12 @@ cleanup(struct archive_read *a)
struct mtree_entry *p, *q;
mtree = (struct mtree *)(a->format->data);
-
+
+ /* Close any dangling file descriptor before freeing */
+ if (mtree->fd >= 0) {
+ close(mtree->fd);
+ mtree->fd = -1;
+ }
p = mtree->entries;
while (p != NULL) {
q = p->next;
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_string.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_string.c:1.18 pkgsrc/archivers/libarchive/files/libarchive/archive_string.c:1.19
--- pkgsrc/archivers/libarchive/files/libarchive/archive_string.c:1.18 Tue Jan 6 11:55:23 2026
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_string.c Thu Mar 26 11:20:07 2026
@@ -772,7 +772,7 @@ archive_string_append_from_wcs_in_codepa
int r;
defchar_used = 0;
- if (to_cp == CP_UTF8 || sc == NULL)
+ if (to_cp == CP_UTF8)
dp = NULL;
else
dp = &defchar_used;
@@ -1873,6 +1873,9 @@ archive_string_conversion_free(struct ar
const char *
archive_string_conversion_charset_name(struct archive_string_conv *sc)
{
+ if (sc == NULL) {
+ return "current locale";
+ }
if (sc->flag & SCONV_TO_CHARSET)
return (sc->to_charset);
else
@@ -4123,7 +4126,12 @@ archive_mstring_get_mbs_l(struct archive
* character-set. */
if ((aes->aes_set & AES_SET_MBS) == 0) {
const char *pm; /* unused */
- archive_mstring_get_mbs(a, aes, &pm); /* ignore errors, we'll handle it later */
+ if (archive_mstring_get_mbs(a, aes, &pm) != 0) {
+ /* We have another form, but failed to convert it to
+ * the native locale. Transitively, we've failed to
+ * convert it to the specified character set. */
+ ret = -1;
+ }
}
/* If we already have an MBS form, use it to be translated to
* specified character-set. */
@@ -4141,6 +4149,8 @@ archive_mstring_get_mbs_l(struct archive
if (length != NULL)
*length = aes->aes_mbs_in_locale.length;
} else {
+ /* Either we have no string in any form,
+ * or conversion failed and set 'ret != 0'. */
*p = NULL;
if (length != NULL)
*length = 0;
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_posix.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_posix.c:1.18 pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_posix.c:1.19
--- pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_posix.c:1.18 Tue Dec 23 14:01:23 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_posix.c Thu Mar 26 11:20:07 2026
@@ -1975,7 +1975,7 @@ archive_write_disk_gid(struct archive *_
return (a->lookup_gid)(a->lookup_gid_data, name, id);
return (id);
}
-
+
int64_t
archive_write_disk_uid(struct archive *_a, const char *name, la_int64_t id)
{
@@ -2406,7 +2406,7 @@ create_filesystem_object(struct archive_
*/
mode = final_mode & 0777 & ~a->user_umask;
- /*
+ /*
* Always create writable such that [f]setxattr() works if we're not
* root.
*/
@@ -3024,7 +3024,7 @@ check_symlinks_fsobj(char *path, int *a_
/*
* We are not the last element and we want to
* follow symlinks if they are a directory.
- *
+ *
* This is needed to extract hardlinks over
* symlinks.
*/
@@ -3435,7 +3435,7 @@ create_dir(struct archive_write_disk *a,
le = new_fixup(a, path);
if (le == NULL)
return (ARCHIVE_FATAL);
- le->fixup |=TODO_MODE_BASE;
+ le->fixup |= TODO_MODE_BASE;
le->mode = mode_final;
}
return (ARCHIVE_OK);
@@ -3447,8 +3447,17 @@ create_dir(struct archive_write_disk *a,
* don't add it to the fixup list here, as it's already been
* added.
*/
- if (la_stat(path, &st) == 0 && S_ISDIR(st.st_mode))
- return (ARCHIVE_OK);
+ if (errno == EEXIST) {
+ if (la_stat(path, &st) == 0) {
+ if (S_ISDIR(st.st_mode))
+ return (ARCHIVE_OK);
+ /* path exists but is not a directory */
+ errno = ENOTDIR;
+ } else {
+ /* restore original errno */
+ errno = EEXIST;
+ }
+ }
archive_set_error(&a->archive, errno, "Failed to create dir '%s'",
path);
@@ -4767,4 +4776,3 @@ static void close_file_descriptor(struct
#endif /* !_WIN32 || __CYGWIN__ */
-
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_ustar.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_ustar.c:1.11 pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_ustar.c:1.12
--- pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_ustar.c:1.11 Tue Jan 6 11:55:23 2026
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_ustar.c Thu Mar 26 11:20:07 2026
@@ -254,11 +254,11 @@ archive_write_ustar_header(struct archiv
sconv = ustar->opt_sconv;
/* Sanity check. */
+ if (archive_entry_pathname(entry) == NULL
#if defined(_WIN32) && !defined(__CYGWIN__)
- if (archive_entry_pathname_w(entry) == NULL) {
-#else
- if (archive_entry_pathname(entry) == NULL) {
+ && archive_entry_pathname_w(entry) == NULL
#endif
+ ) {
archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
"Can't record entry in tar file without pathname");
return (ARCHIVE_FAILED);
@@ -409,15 +409,28 @@ __archive_write_format_header_ustar(stru
*/
r = archive_entry_pathname_l(entry, &pp, ©_length, sconv);
if (r != 0) {
+ const char* p_mbs;
if (errno == ENOMEM) {
archive_set_error(&a->archive, ENOMEM,
"Can't allocate memory for Pathname");
return (ARCHIVE_FATAL);
}
- archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
- "Can't translate pathname '%s' to %s",
- pp, archive_string_conversion_charset_name(sconv));
- ret = ARCHIVE_WARN;
+ p_mbs = archive_entry_pathname(entry);
+ if (p_mbs) {
+ /* We have a wrongly-encoded MBS pathname.
+ * Warn and use it. */
+ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
+ "Can't translate pathname '%s' to %s", p_mbs,
+ archive_string_conversion_charset_name(sconv));
+ ret = ARCHIVE_WARN;
+ } else {
+ /* We have no MBS pathname. Fail. */
+ archive_set_error(&a->archive,
+ ARCHIVE_ERRNO_FILE_FORMAT,
+ "Can't translate pathname to %s",
+ archive_string_conversion_charset_name(sconv));
+ return ARCHIVE_FAILED;
+ }
}
if (copy_length <= USTAR_name_size)
memcpy(h + USTAR_name_offset, pp, copy_length);
Index: pkgsrc/archivers/libarchive/files/libarchive/test/CMakeLists.txt
diff -u pkgsrc/archivers/libarchive/files/libarchive/test/CMakeLists.txt:1.18 pkgsrc/archivers/libarchive/files/libarchive/test/CMakeLists.txt:1.19
--- pkgsrc/archivers/libarchive/files/libarchive/test/CMakeLists.txt:1.18 Thu Nov 20 06:08:27 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/test/CMakeLists.txt Thu Mar 26 11:20:07 2026
@@ -155,6 +155,7 @@ IF(ENABLE_TEST)
test_read_format_lha_bugfix_0.c
test_read_format_lha_filename.c
test_read_format_lha_filename_utf16.c
+ test_read_format_lha_oversize_header.c
test_read_format_mtree.c
test_read_format_mtree_crash747.c
test_read_format_pax_bz2.c
@@ -167,6 +168,7 @@ IF(ENABLE_TEST)
test_read_format_rar_filter.c
test_read_format_rar_overflow.c
test_read_format_rar5.c
+ test_read_format_rar5_loop_bug.c
test_read_format_raw.c
test_read_format_tar.c
test_read_format_tar_V_negative_size.c
@@ -227,6 +229,7 @@ IF(ENABLE_TEST)
test_tar_large.c
test_ustar_filename_encoding.c
test_ustar_filenames.c
+ test_v7tar_filename_encoding.c
test_warn_missing_hardlink_target.c
test_write_disk.c
test_write_disk_appledouble.c
Index: pkgsrc/archivers/libarchive/files/libarchive/test/list.h
diff -u pkgsrc/archivers/libarchive/files/libarchive/test/list.h:1.21 pkgsrc/archivers/libarchive/files/libarchive/test/list.h:1.22
--- pkgsrc/archivers/libarchive/files/libarchive/test/list.h:1.21 Tue Dec 23 14:01:24 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/test/list.h Thu Mar 26 11:20:07 2026
@@ -48,6 +48,8 @@ DEFINE_TEST(test_archive_sha384)
DEFINE_TEST(test_archive_sha512)
DEFINE_TEST(test_archive_string)
DEFINE_TEST(test_archive_string_conversion)
+DEFINE_TEST(test_archive_string_conversion_fail_c)
+DEFINE_TEST(test_archive_string_conversion_fail_latin1)
DEFINE_TEST(test_archive_string_conversion_utf16_utf8)
DEFINE_TEST(test_archive_string_conversion_utf8_utf16)
DEFINE_TEST(test_archive_string_sort)
@@ -169,6 +171,7 @@ DEFINE_TEST(test_gnutar_filename_encodin
DEFINE_TEST(test_gnutar_filename_encoding_Russian_Russia)
DEFINE_TEST(test_gnutar_filename_encoding_UTF16_win)
DEFINE_TEST(test_gnutar_filename_encoding_UTF8_CP866)
+DEFINE_TEST(test_gnutar_filename_encoding_fail_UTF16_win)
DEFINE_TEST(test_gnutar_filename_encoding_ru_RU_CP1251)
DEFINE_TEST(test_link_resolver)
DEFINE_TEST(test_link_resolver_unicode_win)
@@ -233,6 +236,7 @@ DEFINE_TEST(test_read_format_7zip_malfor
DEFINE_TEST(test_read_format_7zip_packinfo_digests)
DEFINE_TEST(test_read_format_7zip_ppmd)
DEFINE_TEST(test_read_format_7zip_sfx_elf)
+DEFINE_TEST(test_read_format_7zip_sfx_elf64trunc)
DEFINE_TEST(test_read_format_7zip_sfx_modified_pe)
DEFINE_TEST(test_read_format_7zip_sfx_pe)
DEFINE_TEST(test_read_format_7zip_win_attrib)
@@ -310,6 +314,7 @@ DEFINE_TEST(test_read_format_lha)
DEFINE_TEST(test_read_format_lha_bugfix_0)
DEFINE_TEST(test_read_format_lha_filename)
DEFINE_TEST(test_read_format_lha_filename_UTF16)
+DEFINE_TEST(test_read_format_lha_oversize_header)
DEFINE_TEST(test_read_format_mtree)
DEFINE_TEST(test_read_format_mtree_crash747)
DEFINE_TEST(test_read_format_mtree_filenames_only)
@@ -348,6 +353,7 @@ DEFINE_TEST(test_read_format_rar5_invali
DEFINE_TEST(test_read_format_rar5_invalidhash_and_validhtime_exfld)
DEFINE_TEST(test_read_format_rar5_leftshift1)
DEFINE_TEST(test_read_format_rar5_leftshift2)
+DEFINE_TEST(test_read_format_rar5_loop_bug)
DEFINE_TEST(test_read_format_rar5_multiarchive_skip_all)
DEFINE_TEST(test_read_format_rar5_multiarchive_skip_all_but_first)
DEFINE_TEST(test_read_format_rar5_multiarchive_skip_all_but_second)
@@ -540,6 +546,7 @@ DEFINE_TEST(test_ustar_filename_encoding
DEFINE_TEST(test_ustar_filename_encoding_Russian_Russia)
DEFINE_TEST(test_ustar_filename_encoding_UTF16_win)
DEFINE_TEST(test_ustar_filename_encoding_UTF8_CP866)
+DEFINE_TEST(test_ustar_filename_encoding_fail_UTF16_win)
DEFINE_TEST(test_ustar_filename_encoding_ru_RU_CP1251)
DEFINE_TEST(test_ustar_filenames)
DEFINE_TEST(test_warn_missing_hardlink_target)
@@ -686,4 +693,5 @@ DEFINE_TEST(test_zip_filename_encoding_K
DEFINE_TEST(test_zip_filename_encoding_Russian_Russia)
DEFINE_TEST(test_zip_filename_encoding_UTF16_win)
DEFINE_TEST(test_zip_filename_encoding_UTF8)
+DEFINE_TEST(test_zip_filename_encoding_fail_UTF16_win)
DEFINE_TEST(test_zip_filename_encoding_ru_RU_CP1251)
Index: pkgsrc/archivers/libarchive/files/libarchive/test/test_archive_string_conversion.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/test/test_archive_string_conversion.c:1.7 pkgsrc/archivers/libarchive/files/libarchive/test/test_archive_string_conversion.c:1.8
--- pkgsrc/archivers/libarchive/files/libarchive/test/test_archive_string_conversion.c:1.7 Sun Nov 2 08:52:15 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/test/test_archive_string_conversion.c Thu Mar 26 11:20:07 2026
@@ -883,6 +883,141 @@ DEFINE_TEST(test_archive_string_conversi
test_archive_string_set_get();
}
+static void
+test_archive_string_conversion_fail_charset(void)
+{
+ /* Conversion error message construction may use the charset name. */
+ assertEqualString("current locale",
+ archive_string_conversion_charset_name(NULL));
+}
+
+static void
+test_archive_string_conversion_fail_utf16_mbs(struct archive *a,
+ struct archive_string_conv *sconv)
+{
+ static const wchar_t wcs_string[] = L"\U0000043f\U00000440\U00000438";
+ int r;
+ const char* p;
+ size_t len;
+
+ /* WCS to MBS should fail. */
+ {
+ struct archive_string str;
+ archive_string_init(&str);
+ r = archive_string_append_from_wcs(
+ &str, wcs_string, sizeof(wcs_string) / sizeof(*wcs_string) - 1);
+ assertEqualInt(-1, r);
+ archive_string_free(&str);
+ }
+ {
+ struct archive_mstring mstr;
+ memset(&mstr, 0, sizeof(mstr));
+ assertEqualInt(ARCHIVE_OK,
+ archive_mstring_copy_wcs(&mstr, wcs_string));
+ r = archive_mstring_get_mbs_l(a, &mstr, &p, &len, NULL);
+ assertEqualInt(-1, r);
+ assertEqualInt(0, mstr.aes_set & AES_SET_MBS);
+ archive_mstring_clean(&mstr);
+ }
+ if (sconv) {
+ struct archive_mstring mstr;
+ memset(&mstr, 0, sizeof(mstr));
+ assertEqualInt(ARCHIVE_OK,
+ archive_mstring_copy_wcs(&mstr, wcs_string));
+ r = archive_mstring_get_mbs_l(a, &mstr, &p, &len, sconv);
+ assertEqualInt(-1, r);
+ assertEqualInt(0, mstr.aes_set & AES_SET_MBS);
+ archive_mstring_clean(&mstr);
+ }
+}
+
+static void
+test_archive_string_conversion_fail_utf8_mbs(struct archive *a,
+ struct archive_string_conv *sconv)
+{
+ static const char utf8_string[] = "\xD0\xBF\xD1\x80\xD0\xB8";
+ int r;
+ const char* p;
+ size_t len;
+
+ /* UTF-8 to MBS should fail. */
+ {
+ struct archive_mstring mstr;
+ memset(&mstr, 0, sizeof(mstr));
+ assertEqualInt(6,
+ archive_mstring_copy_utf8(&mstr, utf8_string));
+ r = archive_mstring_get_mbs_l(a, &mstr, &p, &len, NULL);
+ assertEqualInt(-1, r);
+ assertEqualInt(0, mstr.aes_set & AES_SET_MBS);
+ archive_mstring_clean(&mstr);
+ }
+ if (sconv) {
+ struct archive_mstring mstr;
+ memset(&mstr, 0, sizeof(mstr));
+ assertEqualInt(6,
+ archive_mstring_copy_utf8(&mstr, utf8_string));
+ r = archive_mstring_get_mbs_l(a, &mstr, &p, &len, sconv);
+ assertEqualInt(-1, r);
+ assertEqualInt(0, mstr.aes_set & AES_SET_MBS);
+ archive_mstring_clean(&mstr);
+ }
+}
+
+DEFINE_TEST(test_archive_string_conversion_fail_c)
+{
+ struct archive *a;
+
+ /* Test the C locale by not calling setlocale. */
+
+ test_archive_string_conversion_fail_charset();
+
+ assert((a = archive_write_new()) != NULL);
+
+ test_archive_string_conversion_fail_utf16_mbs(a, NULL);
+ test_archive_string_conversion_fail_utf8_mbs(a, NULL);
+
+ assertEqualInt(ARCHIVE_OK, archive_write_free(a));
+}
+
+DEFINE_TEST(test_archive_string_conversion_fail_latin1)
+{
+ struct archive *a;
+ struct archive_string_conv *sconv;
+
+ /* Test a Latin-1 locale. */
+ if (
+#if defined(_WIN32) && !defined(__CYGWIN__)
+ /* Windows allows ".<code-page>" to change encoding. */
+ setlocale(LC_ALL, ".1252") == NULL
+#else
+ setlocale(LC_ALL, "en_US.ISO8859-1") == NULL
+#endif
+ ) {
+ skipping("No Latin-1 locale found on this system.");
+ return;
+ }
+
+ test_archive_string_conversion_fail_charset();
+
+ assert((a = archive_write_new()) != NULL);
+
+#if defined(_WIN32) && !defined(__CYGWIN__)
+ assertA(NULL != (sconv =
+ archive_string_conversion_to_charset(a, "CP1252", 0)));
+ assertEqualString("CP1252",
+ archive_string_conversion_charset_name(sconv));
+#else
+ assertA(NULL != (sconv =
+ archive_string_conversion_to_charset(a, "ISO8859-1", 0)));
+ assertEqualString("ISO8859-1",
+ archive_string_conversion_charset_name(sconv));
+#endif
+ test_archive_string_conversion_fail_utf16_mbs(a, sconv);
+ test_archive_string_conversion_fail_utf8_mbs(a, sconv);
+
+ assertEqualInt(ARCHIVE_OK, archive_write_free(a));
+}
+
DEFINE_TEST(test_archive_string_conversion_utf16_utf8)
{
#if !defined(_WIN32) || defined(__CYGWIN__)
Index: pkgsrc/archivers/libarchive/files/libarchive/test/test_gnutar_filename_encoding.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/test/test_gnutar_filename_encoding.c:1.4 pkgsrc/archivers/libarchive/files/libarchive/test/test_gnutar_filename_encoding.c:1.5
--- pkgsrc/archivers/libarchive/files/libarchive/test/test_gnutar_filename_encoding.c:1.4 Sun Sep 15 07:02:21 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/test/test_gnutar_filename_encoding.c Thu Mar 26 11:20:07 2026
@@ -491,3 +491,43 @@ DEFINE_TEST(test_gnutar_filename_encodin
assertEqualMem(buff + 157, "\xE8\xA1\xA8.txt", 7);
#endif
}
+
+DEFINE_TEST(test_gnutar_filename_encoding_fail_UTF16_win)
+{
+#if !defined(_WIN32) || defined(__CYGWIN__)
+ skipping("This test is meant to verify unicode string handling"
+ " on Windows with UTF-16 names");
+ return;
+#else
+ struct archive *a;
+ struct archive_entry *entry;
+ char buff[4096];
+ size_t used;
+
+ /* Test the C locale by not calling setlocale. */
+
+ a = archive_write_new();
+ assertEqualInt(ARCHIVE_OK, archive_write_set_format_gnutar(a));
+ if (archive_write_set_options(a, "hdrcharset=CP437") != ARCHIVE_OK) {
+ skipping("This system cannot convert character-set"
+ " from UTF-16 to CP437.");
+ archive_write_free(a);
+ return;
+ }
+ assertEqualInt(ARCHIVE_OK,
+ archive_write_open_memory(a, buff, sizeof(buff), &used));
+
+ entry = archive_entry_new2(a);
+ /* Set the filename using a UTF-16 string */
+ archive_entry_copy_pathname_w(entry, L"\u8868.txt");
+ archive_entry_set_filetype(entry, AE_IFREG);
+ archive_entry_set_size(entry, 0);
+ assertEqualInt(ARCHIVE_FAILED, archive_write_header(a, entry));
+ /* The pathname cannot even be represented in the current locale
+ for inclusion in the error message. */
+ assertEqualString("Can't translate pathname to CP437",
+ archive_error_string(a));
+ archive_entry_free(entry);
+ assertEqualInt(ARCHIVE_OK, archive_write_free(a));
+#endif
+}
Index: pkgsrc/archivers/libarchive/files/libarchive/test/test_ustar_filename_encoding.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/test/test_ustar_filename_encoding.c:1.4 pkgsrc/archivers/libarchive/files/libarchive/test/test_ustar_filename_encoding.c:1.5
--- pkgsrc/archivers/libarchive/files/libarchive/test/test_ustar_filename_encoding.c:1.4 Sun Sep 15 07:02:22 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/test/test_ustar_filename_encoding.c Thu Mar 26 11:20:07 2026
@@ -492,3 +492,43 @@ DEFINE_TEST(test_ustar_filename_encoding
assertEqualMem(buff + 157, "\xE8\xA1\xA8.txt", 7);
#endif
}
+
+DEFINE_TEST(test_ustar_filename_encoding_fail_UTF16_win)
+{
+#if !defined(_WIN32) || defined(__CYGWIN__)
+ skipping("This test is meant to verify unicode string handling"
+ " on Windows with UTF-16 names");
+ return;
+#else
+ struct archive *a;
+ struct archive_entry *entry;
+ char buff[4096];
+ size_t used;
+
+ /* Test the C locale by not calling setlocale. */
+
+ a = archive_write_new();
+ assertEqualInt(ARCHIVE_OK, archive_write_set_format_ustar(a));
+ if (archive_write_set_options(a, "hdrcharset=CP437") != ARCHIVE_OK) {
+ skipping("This system cannot convert character-set"
+ " from UTF-16 to CP437.");
+ archive_write_free(a);
+ return;
+ }
+ assertEqualInt(ARCHIVE_OK,
+ archive_write_open_memory(a, buff, sizeof(buff), &used));
+
+ entry = archive_entry_new2(a);
+ /* Set the filename using a UTF-16 string */
+ archive_entry_copy_pathname_w(entry, L"\u8868.txt");
+ archive_entry_set_filetype(entry, AE_IFREG);
+ archive_entry_set_size(entry, 0);
+ assertEqualInt(ARCHIVE_FAILED, archive_write_header(a, entry));
+ /* The pathname cannot even be represented in the current locale
+ for inclusion in the error message. */
+ assertEqualString("Can't translate pathname to CP437",
+ archive_error_string(a));
+ archive_entry_free(entry);
+ assertEqualInt(ARCHIVE_OK, archive_write_free(a));
+#endif
+}
Index: pkgsrc/archivers/libarchive/files/libarchive/test/test_zip_filename_encoding.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/test/test_zip_filename_encoding.c:1.4 pkgsrc/archivers/libarchive/files/libarchive/test/test_zip_filename_encoding.c:1.5
--- pkgsrc/archivers/libarchive/files/libarchive/test/test_zip_filename_encoding.c:1.4 Sun Sep 15 07:02:22 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/test/test_zip_filename_encoding.c Thu Mar 26 11:20:07 2026
@@ -622,3 +622,43 @@ DEFINE_TEST(test_zip_filename_encoding_U
/* NOTE: ZIP does not support hardlinks */
#endif
}
+
+DEFINE_TEST(test_zip_filename_encoding_fail_UTF16_win)
+{
+#if !defined(_WIN32) || defined(__CYGWIN__)
+ skipping("This test is meant to verify unicode string handling"
+ " on Windows with UTF-16 names");
+ return;
+#else
+ struct archive *a;
+ struct archive_entry *entry;
+ char buff[4096];
+ size_t used;
+
+ /* Test the C locale by not calling setlocale. */
+
+ a = archive_write_new();
+ assertEqualInt(ARCHIVE_OK, archive_write_set_format_zip(a));
+ if (archive_write_set_options(a, "hdrcharset=CP437") != ARCHIVE_OK) {
+ skipping("This system cannot convert character-set"
+ " from UTF-16 to CP437.");
+ archive_write_free(a);
+ return;
+ }
+ assertEqualInt(ARCHIVE_OK,
+ archive_write_open_memory(a, buff, sizeof(buff), &used));
+
+ entry = archive_entry_new2(a);
+ /* Set the filename using a UTF-16 string */
+ archive_entry_copy_pathname_w(entry, L"\u8868.txt");
+ archive_entry_set_filetype(entry, AE_IFREG);
+ archive_entry_set_size(entry, 0);
+ assertEqualInt(ARCHIVE_FAILED, archive_write_header(a, entry));
+ /* The pathname cannot even be represented in the current locale
+ for inclusion in the error message. */
+ assertEqualString("Can't translate pathname to CP437",
+ archive_error_string(a));
+ archive_entry_free(entry);
+ assertEqualInt(ARCHIVE_OK, archive_write_free(a));
+#endif
+}
Index: pkgsrc/archivers/libarchive/files/libarchive/test/test_read_format_7zip.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/test/test_read_format_7zip.c:1.10 pkgsrc/archivers/libarchive/files/libarchive/test/test_read_format_7zip.c:1.11
--- pkgsrc/archivers/libarchive/files/libarchive/test/test_read_format_7zip.c:1.10 Sun Nov 2 08:52:15 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/test/test_read_format_7zip.c Thu Mar 26 11:20:07 2026
@@ -1383,6 +1383,32 @@ DEFINE_TEST(test_read_format_7zip_sfx_el
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
}
+/*
+ * A truncated ELF 64-bit MSB file.
+ */
+DEFINE_TEST(test_read_format_7zip_sfx_elf64trunc)
+{
+ const char *reffile = "test_read_format_7zip_sfx_elf64trunc.elf";
+ struct archive_entry *ae;
+ struct archive *a;
+
+ assert((a = archive_read_new()) != NULL);
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a));
+
+ extract_reference_file(reffile);
+ assertEqualIntA(a, ARCHIVE_FATAL,
+ archive_read_open_filename(a, reffile, 10240));
+
+ assertEqualIntA(a, ARCHIVE_FATAL, archive_read_next_header(a, &ae));
+ assertEqualInt(0, archive_file_count(a));
+
+ assertEqualInt(ARCHIVE_OK, archive_read_close(a));
+
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+}
+
DEFINE_TEST(test_read_format_7zip_extract_second)
{
struct archive *a;
Index: pkgsrc/archivers/libarchive/files/libarchive/test/test_write_disk_perms.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/test/test_write_disk_perms.c:1.10 pkgsrc/archivers/libarchive/files/libarchive/test/test_write_disk_perms.c:1.11
--- pkgsrc/archivers/libarchive/files/libarchive/test/test_write_disk_perms.c:1.10 Tue Dec 23 14:01:24 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/test/test_write_disk_perms.c Thu Mar 26 11:20:07 2026
@@ -26,6 +26,13 @@
#if !defined(_WIN32) || defined(__CYGWIN__)
+#ifdef HAVE_GETEUID
+#define getuid() geteuid()
+#endif
+#ifdef HAVE_GETEGID
+#define getgid() getegid()
+#endif
+
#define UMASK 022
static long _default_gid = -1;
@@ -142,7 +149,7 @@ DEFINE_TEST(test_write_disk_perms)
* and we're on a system where group ownership is inherited.
* (Because we're not allowed to SGID files with defaultgid().)
*/
- assertEqualInt(0, chown(".", getuid(), getgid()));
+ assertChown(".", getuid(), getgid());
/* Create an archive_write_disk object. */
assert((a = archive_write_disk_new()) != NULL);
@@ -208,7 +215,7 @@ DEFINE_TEST(test_write_disk_perms)
if (getuid() == 0) {
original_uid = getuid() + 1;
try_to_change_uid = getuid();
- assertEqualInt(0, chown("dir_owner", original_uid, getgid()));
+ assertChown("dir_owner", original_uid, getgid());
} else {
original_uid = getuid();
try_to_change_uid = getuid() + 1;
Index: pkgsrc/archivers/libarchive/files/libarchive/test/test_write_disk.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/test/test_write_disk.c:1.6 pkgsrc/archivers/libarchive/files/libarchive/test/test_write_disk.c:1.7
--- pkgsrc/archivers/libarchive/files/libarchive/test/test_write_disk.c:1.6 Fri Apr 12 15:39:56 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/test/test_write_disk.c Thu Mar 26 11:20:07 2026
@@ -233,6 +233,22 @@ static void create_reg_file_win(struct a
assertEqualInt(st.st_size, sizeof(data));
free(fname);
}
+#else
+static void create_fail(struct archive_entry *ae, int experr,
+ const char *msg)
+{
+ struct archive *ad;
+ struct stat st;
+
+ /* Write the entry to disk. */
+ assert((ad = archive_write_disk_new()) != NULL);
+ failure("%s", msg);
+ assertEqualIntA(ad, ARCHIVE_FAILED, archive_write_header(ad, ae));
+ assertEqualIntA(ad, experr, archive_errno(ad));
+ assertEqualInt(0, archive_write_free(ad));
+ assertEqualInt(-1, stat(archive_entry_pathname(ae), &st));
+ assertEqualInt(ENOENT, errno);
+}
#endif /* _WIN32 && !__CYGWIN__ */
DEFINE_TEST(test_write_disk)
@@ -344,5 +360,18 @@ DEFINE_TEST(test_write_disk)
" with unusable characters in its file name");
archive_entry_free(ae);
free(fullpath);
+#else /* !_WIN32 || __CYGWIN__ */
+ /* A directory with a /../ in the middle */
+ assert((ae = archive_entry_new()) != NULL);
+ archive_entry_copy_pathname(ae, "a/b/../b/file");
+ archive_entry_set_mode(ae, S_IFREG | 0644);
+ /* First attempt should fail with EACCES */
+ assertEqualInt(0, mkdir("a", 0111));
+ create_fail(ae, EACCES,
+ "Test failing to create parent directory with /../");
+ /* Now let it succeed */
+ assertEqualInt(0, chmod("a", 0755));
+ create(ae, "Test creating parent directory with /../");
+ archive_entry_free(ae);
#endif /* _WIN32 && !__CYGWIN__ */
}
Index: pkgsrc/archivers/libarchive/files/test_utils/test_common.h
diff -u pkgsrc/archivers/libarchive/files/test_utils/test_common.h:1.13 pkgsrc/archivers/libarchive/files/test_utils/test_common.h:1.14
--- pkgsrc/archivers/libarchive/files/test_utils/test_common.h:1.13 Sun Nov 2 08:52:16 2025
+++ pkgsrc/archivers/libarchive/files/test_utils/test_common.h Thu Mar 26 11:20:07 2026
@@ -163,6 +163,9 @@
/* change file/directory permissions and errors if it fails */
#define assertChmod(pathname, mode) \
assertion_chmod(__FILE__, __LINE__, pathname, mode)
+/* change file/directory ownership and errors if it fails */
+#define assertChown(pathname, user, group) \
+ assertion_chown(__FILE__, __LINE__, pathname, user, group)
/* Assert two files have the same file flags */
#define assertEqualFflags(patha, pathb) \
assertion_compare_fflags(__FILE__, __LINE__, patha, pathb, 0)
@@ -279,6 +282,7 @@ void failure(const char *fmt, ...) __LA_
int assertion_assert(const char *, int, int, const char *, void *);
int assertion_chdir(const char *, int, const char *);
int assertion_chmod(const char *, int, const char *, int);
+int assertion_chown(const char *, int, const char *, int, int);
int assertion_compare_fflags(const char *, int, const char *, const char *,
int);
int assertion_empty_file(const char *, int, const char *);
Index: pkgsrc/archivers/libarchive/files/test_utils/test_main.c
diff -u pkgsrc/archivers/libarchive/files/test_utils/test_main.c:1.14 pkgsrc/archivers/libarchive/files/test_utils/test_main.c:1.15
--- pkgsrc/archivers/libarchive/files/test_utils/test_main.c:1.14 Tue Jan 6 11:55:24 2026
+++ pkgsrc/archivers/libarchive/files/test_utils/test_main.c Thu Mar 26 11:20:07 2026
@@ -96,6 +96,12 @@ extern char **environ;
# define USE_POSIX_SPAWN 1
# endif
#endif
+#if !defined(_WIN32)
+# if HAVE_PWD_H && HAVE_GETEUID && HAVE_GETEGID
+# include <pwd.h>
+# define RUN_TEST_UNPRIV 1
+# endif
+#endif
#ifndef nitems
#define nitems(arr) (sizeof(arr) / sizeof((arr)[0]))
@@ -179,6 +185,14 @@ const char *testprogfile;
const char *testprog;
#endif
+#ifdef RUN_TEST_UNPRIV
+/* Unprivileged user to run as */
+const char *tuser = "nobody";
+/* Original and test credentials */
+uid_t ouid, tuid;
+uid_t ogid, tgid;
+#endif
+
#if defined(_WIN32) && !defined(__CYGWIN__)
static void *GetFunctionKernel32(const char *);
static int my_CreateSymbolicLinkA(const char *, const char *, int);
@@ -632,6 +646,22 @@ assertion_chmod(const char *file, int li
}
+/* change file/directory ownership and errors if it fails */
+int
+assertion_chown(const char *file, int line, const char *pathname, int user,
+ int group)
+{
+ assertion_count(file, line);
+#ifdef HAVE_CHOWN
+ if (chown(pathname, (uid_t)user, (gid_t)group) == 0)
+ return (1);
+#endif
+ failure_start(file, line, "chown(\"%s\", %d, %d)", pathname,
+ user, group);
+ failure_finish(NULL);
+ return (0);
+}
+
/* Verify two integers are equal. */
int
assertion_equal_int(const char *file, int line,
@@ -3610,8 +3640,11 @@ test_run(int i, const char *tmpdir)
exit(1);
}
testworkdir = workdir;
- if (!assertMakeDir(testworkdir, 0755)
- || !assertChdir(testworkdir)) {
+ if (!assertMakeDir(testworkdir, 0755) ||
+#ifdef RUN_TEST_UNPRIV
+ (tuser != NULL && !assertChown(testworkdir, tuid, tgid)) ||
+#endif
+ !assertChdir(testworkdir)) {
fprintf(stderr,
"ERROR: Can't chdir to work dir %s\n", testworkdir);
exit(1);
@@ -3620,10 +3653,28 @@ test_run(int i, const char *tmpdir)
set_c_locale();
/* Record the umask before we run the test. */
umask(oldumask = umask(0));
+#ifdef RUN_TEST_UNPRIV
+ /*
+ * Temporarily drop privileges.
+ */
+ if (tuser != NULL) {
+ (void)setegid(tuid);
+ (void)seteuid(tuid);
+ }
+#endif
/*
* Run the actual test.
*/
(*tests[i].func)();
+#ifdef RUN_TEST_UNPRIV
+ /*
+ * Restore original credentials.
+ */
+ if (tuser != NULL) {
+ (void)seteuid(ouid);
+ (void)setegid(ogid);
+ }
+#endif
/*
* Clean up and report afterwards.
*/
@@ -3949,6 +4000,9 @@ main(int argc, char **argv)
#endif
char *pwd, *testprogdir, *tmp2 = NULL, *vlevel = NULL;
char tmpdir_timestamp[32];
+#ifdef RUN_TEST_UNPRIV
+ struct passwd *pw;
+#endif
(void)argc; /* UNUSED */
@@ -4110,6 +4164,11 @@ main(int argc, char **argv)
case 's':
fail_if_tests_skipped = 1;
break;
+#ifdef RUN_TEST_UNPRIV
+ case 'U':
+ tuser = optarg;
+ break;
+#endif
case 'u':
until_failure++;
break;
@@ -4194,6 +4253,28 @@ main(int argc, char **argv)
}
#endif
+#ifdef RUN_TEST_UNPRIV
+ /*
+ * Check if we are root, and get user to run as.
+ */
+ ouid = getuid();
+ ogid = getgid();
+ if (ouid == 0) {
+ if ((pw = getpwnam(tuser)) == NULL) {
+ fprintf(stderr, "ERROR: Unknown user %s\n", tuser);
+ exit(1);
+ }
+ tuid = pw->pw_uid;
+ tgid = pw->pw_gid;
+ printf("Will switch to user %s (uid %d gid %d)\n", tuser,
+ tuid, tgid);
+ } else {
+ tuser = NULL;
+ tuid = ouid;
+ tgid = ogid;
+ }
+#endif
+
/*
* Create a temp directory for the following tests.
* Include the time the tests started as part of the name,
Index: pkgsrc/archivers/libarchive/files/unzip/bsdunzip.c
diff -u pkgsrc/archivers/libarchive/files/unzip/bsdunzip.c:1.10 pkgsrc/archivers/libarchive/files/unzip/bsdunzip.c:1.11
--- pkgsrc/archivers/libarchive/files/unzip/bsdunzip.c:1.10 Tue Jan 6 11:55:24 2026
+++ pkgsrc/archivers/libarchive/files/unzip/bsdunzip.c Thu Mar 26 11:20:08 2026
@@ -884,9 +884,9 @@ list(struct archive *a, struct archive_e
mtime = archive_entry_mtime(e);
tm = localtime(&mtime);
if (*y_str)
- strftime(buf, sizeof(buf), "%m-%d-%G %R", tm);
+ strftime(buf, sizeof(buf), "%m-%d-%Y %R", tm);
else
- strftime(buf, sizeof(buf), "%m-%d-%g %R", tm);
+ strftime(buf, sizeof(buf), "%m-%d-%y %R", tm);
pathname = archive_entry_pathname(e);
if (!pathname)
Home |
Main Index |
Thread Index |
Old Index