From 59d57bb1ffd3d9515c427883583482b295f181df Mon Sep 17 00:00:00 2001 From: DongHun Kwak Date: Wed, 28 Sep 2016 13:38:13 +0900 Subject: [PATCH] Imported Upstream version 3.2.1 Change-Id: Ia3da21e5117593a6e6428408ad875e83e4ec9928 Signed-off-by: DongHun Kwak --- CMakeLists.txt | 4 +- Makefile.am | 7 +- Makefile.in | 83 +++++++++- NEWS | 5 + build/autoconf/config.guess | 168 +++++++++++++-------- build/autoconf/config.sub | 58 ++++--- build/version | 2 +- cat/bsdcat.c | 12 +- cat/bsdcat.h | 2 +- cat/test/main.c | 75 +++++---- config.h.in | 3 + configure | 69 +++++---- configure.ac | 16 +- cpio/cpio.c | 1 + cpio/test/CMakeLists.txt | 1 + cpio/test/list.h | 1 + cpio/test/main.c | 75 +++++---- cpio/test/test_missing_file.c | 52 +++++++ doc/html/archive_entry.3.html | 2 +- doc/html/archive_entry_acl.3.html | 2 +- doc/html/archive_entry_linkify.3.html | 2 +- doc/html/archive_entry_paths.3.html | 2 +- doc/html/archive_entry_perms.3.html | 2 +- doc/html/archive_entry_stat.3.html | 2 +- doc/html/archive_entry_time.3.html | 2 +- doc/html/archive_read.3.html | 2 +- doc/html/archive_read_add_passphrase.3.html | 2 +- doc/html/archive_read_data.3.html | 2 +- doc/html/archive_read_disk.3.html | 2 +- doc/html/archive_read_extract.3.html | 2 +- doc/html/archive_read_filter.3.html | 2 +- doc/html/archive_read_format.3.html | 2 +- doc/html/archive_read_free.3.html | 2 +- doc/html/archive_read_header.3.html | 2 +- doc/html/archive_read_new.3.html | 2 +- doc/html/archive_read_open.3.html | 2 +- doc/html/archive_read_set_options.3.html | 2 +- doc/html/archive_util.3.html | 2 +- doc/html/archive_write.3.html | 2 +- doc/html/archive_write_blocksize.3.html | 2 +- doc/html/archive_write_data.3.html | 2 +- doc/html/archive_write_disk.3.html | 2 +- doc/html/archive_write_filter.3.html | 5 +- doc/html/archive_write_finish_entry.3.html | 2 +- doc/html/archive_write_format.3.html | 2 +- doc/html/archive_write_free.3.html | 2 +- doc/html/archive_write_header.3.html | 2 +- doc/html/archive_write_new.3.html | 2 +- doc/html/archive_write_open.3.html | 2 +- doc/html/archive_write_set_options.3.html | 4 +- doc/html/archive_write_set_passphrase.3.html | 2 +- doc/html/bsdcpio.1.html | 2 +- doc/html/bsdtar.1.html | 2 +- doc/html/cpio.5.html | 2 +- doc/html/libarchive-formats.5.html | 2 +- doc/html/libarchive.3.html | 2 +- doc/html/libarchive_changes.3.html | 6 +- doc/html/libarchive_internals.3.html | 2 +- doc/html/mtree.5.html | 2 +- doc/html/tar.5.html | 2 +- doc/man/archive_write_filter.3 | 1 + doc/man/archive_write_set_options.3 | 2 +- doc/man/libarchive-formats.5 | 1 - doc/man/libarchive_changes.3 | 2 +- doc/pdf/archive_entry.3.pdf | Bin 7221 -> 7221 bytes doc/pdf/archive_entry_acl.3.pdf | Bin 9036 -> 9036 bytes doc/pdf/archive_entry_linkify.3.pdf | Bin 8417 -> 8417 bytes doc/pdf/archive_entry_paths.3.pdf | Bin 7348 -> 7348 bytes doc/pdf/archive_entry_perms.3.pdf | Bin 9046 -> 9046 bytes doc/pdf/archive_entry_stat.3.pdf | Bin 10154 -> 10154 bytes doc/pdf/archive_entry_time.3.pdf | Bin 6036 -> 6036 bytes doc/pdf/archive_read.3.pdf | Bin 10266 -> 10266 bytes doc/pdf/archive_read_add_passphrase.3.pdf | Bin 4458 -> 4458 bytes doc/pdf/archive_read_data.3.pdf | Bin 6784 -> 6784 bytes doc/pdf/archive_read_disk.3.pdf | Bin 12125 -> 12125 bytes doc/pdf/archive_read_extract.3.pdf | Bin 6968 -> 6968 bytes doc/pdf/archive_read_filter.3.pdf | Bin 6304 -> 6304 bytes doc/pdf/archive_read_format.3.pdf | Bin 7996 -> 7996 bytes doc/pdf/archive_read_free.3.pdf | Bin 5089 -> 5089 bytes doc/pdf/archive_read_header.3.pdf | Bin 4885 -> 4885 bytes doc/pdf/archive_read_new.3.pdf | Bin 4177 -> 4177 bytes doc/pdf/archive_read_open.3.pdf | Bin 9286 -> 9286 bytes doc/pdf/archive_read_set_options.3.pdf | Bin 7543 -> 7543 bytes doc/pdf/archive_util.3.pdf | Bin 9195 -> 9195 bytes doc/pdf/archive_write.3.pdf | Bin 10850 -> 10850 bytes doc/pdf/archive_write_blocksize.3.pdf | Bin 6326 -> 6326 bytes doc/pdf/archive_write_data.3.pdf | Bin 4604 -> 4604 bytes doc/pdf/archive_write_disk.3.pdf | Bin 16677 -> 16677 bytes doc/pdf/archive_write_filter.3.pdf | Bin 5771 -> 5817 bytes doc/pdf/archive_write_finish_entry.3.pdf | Bin 4704 -> 4704 bytes doc/pdf/archive_write_format.3.pdf | Bin 7445 -> 7445 bytes doc/pdf/archive_write_free.3.pdf | Bin 4975 -> 4975 bytes doc/pdf/archive_write_header.3.pdf | Bin 4541 -> 4541 bytes doc/pdf/archive_write_new.3.pdf | Bin 4153 -> 4153 bytes doc/pdf/archive_write_open.3.pdf | Bin 9097 -> 9097 bytes doc/pdf/archive_write_set_options.3.pdf | Bin 17839 -> 17843 bytes doc/pdf/archive_write_set_passphrase.3.pdf | Bin 4440 -> 4440 bytes doc/pdf/bsdcpio.1.pdf | Bin 15501 -> 15501 bytes doc/pdf/bsdtar.1.pdf | Bin 42455 -> 42455 bytes doc/pdf/cpio.5.pdf | Bin 13366 -> 13366 bytes doc/pdf/libarchive-formats.5.pdf | Bin 21501 -> 21501 bytes doc/pdf/libarchive.3.pdf | Bin 11033 -> 11033 bytes doc/pdf/libarchive_changes.3.pdf | Bin 12104 -> 12154 bytes doc/pdf/libarchive_internals.3.pdf | Bin 17132 -> 17132 bytes doc/pdf/mtree.5.pdf | Bin 10134 -> 10134 bytes doc/pdf/tar.5.pdf | Bin 36764 -> 36764 bytes doc/text/archive_write_filter.3.txt | 2 +- doc/text/archive_write_set_options.3.txt | 2 +- doc/text/libarchive_changes.3.txt | 2 +- doc/wiki/ManPageArchiveWriteFilter3.wiki | 1 + doc/wiki/ManPageArchiveWriteSetOptions3.wiki | 2 +- doc/wiki/ManPageLibarchiveChanges3.wiki | 2 +- doc/wiki/ManPageLibarchiveFormats5.wiki | 1 - libarchive/archive.h | 4 +- libarchive/archive_entry.h | 2 +- libarchive/archive_entry_xattr.c | 9 +- libarchive/archive_ppmd7.c | 5 + libarchive/archive_read_disk_windows.c | 2 +- libarchive/archive_read_support_format_7zip.c | 3 + libarchive/archive_read_support_format_cpio.c | 5 + libarchive/archive_read_support_format_iso9660.c | 4 +- libarchive/archive_read_support_format_mtree.c | 6 +- libarchive/archive_read_support_format_rar.c | 18 ++- libarchive/archive_read_support_format_tar.c | 6 +- libarchive/archive_read_support_format_zip.c | 13 +- libarchive/archive_write_disk_windows.c | 14 +- libarchive/archive_write_filter.3 | 1 + libarchive/archive_write_set_format_gnutar.c | 22 +-- libarchive/archive_write_set_format_iso9660.c | 18 ++- libarchive/archive_write_set_options.3 | 2 +- libarchive/libarchive-formats.5 | 1 - libarchive/libarchive_changes.3 | 2 +- libarchive/test/CMakeLists.txt | 2 + libarchive/test/list.h | 3 + libarchive/test/main.c | 75 +++++---- libarchive/test/test_read_format_rar_invalid1.c | 44 ++++++ .../test/test_read_format_rar_invalid1.rar.uu | 5 + .../test/test_write_format_gnutar_filenames.c | 145 ++++++++++++++++++ libarchive/xxhash.c | 2 +- libarchive_fe/err.c | 2 +- tar/test/CMakeLists.txt | 1 + tar/test/list.h | 1 + tar/test/main.c | 75 +++++---- tar/test/test_missing_file.c | 37 +++++ tar/write.c | 2 +- 145 files changed, 938 insertions(+), 338 deletions(-) create mode 100644 cpio/test/test_missing_file.c create mode 100644 libarchive/test/test_read_format_rar_invalid1.c create mode 100644 libarchive/test/test_read_format_rar_invalid1.rar.uu create mode 100644 libarchive/test/test_write_format_gnutar_filenames.c create mode 100644 tar/test/test_missing_file.c diff --git a/CMakeLists.txt b/CMakeLists.txt index d8a7c5d..68e94a6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,7 +15,7 @@ endif() # RelWithDebInfo : Release build with Debug Info # MinSizeRel : Release Min Size build IF(NOT CMAKE_BUILD_TYPE) - SET(CMAKE_BUILD_TYPE "Release" CACHE STRING "Build Type" FORCE) + SET(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Build Type" FORCE) ENDIF(NOT CMAKE_BUILD_TYPE) # Set a value type to properly display CMAKE_BUILD_TYPE on GUI if the # value type is "UNINITIALIZED". @@ -365,7 +365,7 @@ IF(DEFINED __GNUWIN32PATH AND EXISTS "${__GNUWIN32PATH}") # e.g. # cmake -DCMAKE_PREFIX_PATH= # - # If compiling error occured in zconf.h, You may need patch to zconf.h. + # If compiling error occurred in zconf.h, You may need patch to zconf.h. #--- zconf.h.orig 2005-07-21 00:40:26.000000000 #+++ zconf.h 2009-01-19 11:39:10.093750000 #@@ -286,7 +286,7 @@ diff --git a/Makefile.am b/Makefile.am index a36bccb..b02797f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -23,7 +23,7 @@ TESTS_ENVIRONMENT= $(libarchive_TESTS_ENVIRONMENT) $(bsdtar_TESTS_ENVIRONMENT) $ DISTCHECK_CONFIGURE_FLAGS = --enable-bsdtar --enable-bsdcpio # The next line is commented out by default in shipping libarchive releases. # It is uncommented by default in trunk. -#DEV_CFLAGS=-Werror -Wextra -Wunused -Wshadow -Wmissing-prototypes -Wcast-qual -g +# DEV_CFLAGS=-Werror -Wextra -Wunused -Wshadow -Wmissing-prototypes -Wcast-qual -g AM_CFLAGS=$(DEV_CFLAGS) PLATFORMCPPFLAGS = @PLATFORMCPPFLAGS@ AM_CPPFLAGS=$(PLATFORMCPPFLAGS) @@ -454,6 +454,7 @@ libarchive_test_SOURCES= \ libarchive/test/test_read_format_rar_encryption_data.c \ libarchive/test/test_read_format_rar_encryption_partially.c \ libarchive/test/test_read_format_rar_encryption_header.c \ + libarchive/test/test_read_format_rar_invalid1.c \ libarchive/test/test_read_format_raw.c \ libarchive/test/test_read_format_tar.c \ libarchive/test/test_read_format_tar_concatenated.c \ @@ -533,6 +534,7 @@ libarchive_test_SOURCES= \ libarchive/test/test_write_format_cpio_newc.c \ libarchive/test/test_write_format_cpio_odc.c \ libarchive/test/test_write_format_gnutar.c \ + libarchive/test/test_write_format_gnutar_filenames.c \ libarchive/test/test_write_format_iso9660.c \ libarchive/test/test_write_format_iso9660_boot.c \ libarchive/test/test_write_format_iso9660_empty.c \ @@ -746,6 +748,7 @@ libarchive_test_EXTRA_DIST=\ libarchive/test/test_read_format_rar_encryption_data.rar.uu \ libarchive/test/test_read_format_rar_encryption_header.rar.uu \ libarchive/test/test_read_format_rar_encryption_partially.rar.uu \ + libarchive/test/test_read_format_rar_invalid1.rar.uu \ libarchive/test/test_read_format_rar_multi_lzss_blocks.rar.uu \ libarchive/test/test_read_format_rar_multivolume.part0001.rar.uu \ libarchive/test/test_read_format_rar_multivolume.part0002.rar.uu \ @@ -909,6 +912,7 @@ bsdtar_test_SOURCES= \ tar/test/test_format_newc.c \ tar/test/test_help.c \ tar/test/test_leading_slash.c \ + tar/test/test_missing_file.c \ tar/test/test_option_C_upper.c \ tar/test/test_option_H_upper.c \ tar/test/test_option_L_upper.c \ @@ -1064,6 +1068,7 @@ bsdcpio_test_SOURCES= \ cpio/test/test_extract_cpio_xz.c \ cpio/test/test_format_newc.c \ cpio/test/test_gcpio_compat.c \ + cpio/test/test_missing_file.c \ cpio/test/test_option_0.c \ cpio/test/test_option_B_upper.c \ cpio/test/test_option_C_upper.c \ diff --git a/Makefile.in b/Makefile.in index ebb21a7..0d860d3 100644 --- a/Makefile.in +++ b/Makefile.in @@ -488,6 +488,7 @@ am_bsdcpio_test_OBJECTS = $(am__objects_5) \ cpio/test/bsdcpio_test-test_extract_cpio_xz.$(OBJEXT) \ cpio/test/bsdcpio_test-test_format_newc.$(OBJEXT) \ cpio/test/bsdcpio_test-test_gcpio_compat.$(OBJEXT) \ + cpio/test/bsdcpio_test-test_missing_file.$(OBJEXT) \ cpio/test/bsdcpio_test-test_option_0.$(OBJEXT) \ cpio/test/bsdcpio_test-test_option_B_upper.$(OBJEXT) \ cpio/test/bsdcpio_test-test_option_C_upper.$(OBJEXT) \ @@ -555,6 +556,7 @@ am_bsdtar_test_OBJECTS = $(am__objects_7) \ tar/test/bsdtar_test-test_format_newc.$(OBJEXT) \ tar/test/bsdtar_test-test_help.$(OBJEXT) \ tar/test/bsdtar_test-test_leading_slash.$(OBJEXT) \ + tar/test/bsdtar_test-test_missing_file.$(OBJEXT) \ tar/test/bsdtar_test-test_option_C_upper.$(OBJEXT) \ tar/test/bsdtar_test-test_option_H_upper.$(OBJEXT) \ tar/test/bsdtar_test-test_option_L_upper.$(OBJEXT) \ @@ -860,6 +862,7 @@ am__libarchive_test_SOURCES_DIST = libarchive/archive_acl.c \ libarchive/test/test_read_format_rar_encryption_data.c \ libarchive/test/test_read_format_rar_encryption_partially.c \ libarchive/test/test_read_format_rar_encryption_header.c \ + libarchive/test/test_read_format_rar_invalid1.c \ libarchive/test/test_read_format_raw.c \ libarchive/test/test_read_format_tar.c \ libarchive/test/test_read_format_tar_concatenated.c \ @@ -939,6 +942,7 @@ am__libarchive_test_SOURCES_DIST = libarchive/archive_acl.c \ libarchive/test/test_write_format_cpio_newc.c \ libarchive/test/test_write_format_cpio_odc.c \ libarchive/test/test_write_format_gnutar.c \ + libarchive/test/test_write_format_gnutar_filenames.c \ libarchive/test/test_write_format_iso9660.c \ libarchive/test/test_write_format_iso9660_boot.c \ libarchive/test/test_write_format_iso9660_empty.c \ @@ -1231,6 +1235,7 @@ am_libarchive_test_OBJECTS = $(am__objects_9) $(am__objects_10) \ libarchive/test/libarchive_test-test_read_format_rar_encryption_data.$(OBJEXT) \ libarchive/test/libarchive_test-test_read_format_rar_encryption_partially.$(OBJEXT) \ libarchive/test/libarchive_test-test_read_format_rar_encryption_header.$(OBJEXT) \ + libarchive/test/libarchive_test-test_read_format_rar_invalid1.$(OBJEXT) \ libarchive/test/libarchive_test-test_read_format_raw.$(OBJEXT) \ libarchive/test/libarchive_test-test_read_format_tar.$(OBJEXT) \ libarchive/test/libarchive_test-test_read_format_tar_concatenated.$(OBJEXT) \ @@ -1310,6 +1315,7 @@ am_libarchive_test_OBJECTS = $(am__objects_9) $(am__objects_10) \ libarchive/test/libarchive_test-test_write_format_cpio_newc.$(OBJEXT) \ libarchive/test/libarchive_test-test_write_format_cpio_odc.$(OBJEXT) \ libarchive/test/libarchive_test-test_write_format_gnutar.$(OBJEXT) \ + libarchive/test/libarchive_test-test_write_format_gnutar_filenames.$(OBJEXT) \ libarchive/test/libarchive_test-test_write_format_iso9660.$(OBJEXT) \ libarchive/test/libarchive_test-test_write_format_iso9660_boot.$(OBJEXT) \ libarchive/test/libarchive_test-test_write_format_iso9660_empty.$(OBJEXT) \ @@ -1777,7 +1783,7 @@ TESTS_ENVIRONMENT = $(libarchive_TESTS_ENVIRONMENT) $(bsdtar_TESTS_ENVIRONMENT) DISTCHECK_CONFIGURE_FLAGS = --enable-bsdtar --enable-bsdcpio # The next line is commented out by default in shipping libarchive releases. # It is uncommented by default in trunk. -#DEV_CFLAGS=-Werror -Wextra -Wunused -Wshadow -Wmissing-prototypes -Wcast-qual -g +# DEV_CFLAGS=-Werror -Wextra -Wunused -Wshadow -Wmissing-prototypes -Wcast-qual -g AM_CFLAGS = $(DEV_CFLAGS) AM_CPPFLAGS = $(PLATFORMCPPFLAGS) @@ -2158,6 +2164,7 @@ libarchive_test_SOURCES = \ libarchive/test/test_read_format_rar_encryption_data.c \ libarchive/test/test_read_format_rar_encryption_partially.c \ libarchive/test/test_read_format_rar_encryption_header.c \ + libarchive/test/test_read_format_rar_invalid1.c \ libarchive/test/test_read_format_raw.c \ libarchive/test/test_read_format_tar.c \ libarchive/test/test_read_format_tar_concatenated.c \ @@ -2237,6 +2244,7 @@ libarchive_test_SOURCES = \ libarchive/test/test_write_format_cpio_newc.c \ libarchive/test/test_write_format_cpio_odc.c \ libarchive/test/test_write_format_gnutar.c \ + libarchive/test/test_write_format_gnutar_filenames.c \ libarchive/test/test_write_format_iso9660.c \ libarchive/test/test_write_format_iso9660_boot.c \ libarchive/test/test_write_format_iso9660_empty.c \ @@ -2441,6 +2449,7 @@ libarchive_test_EXTRA_DIST = \ libarchive/test/test_read_format_rar_encryption_data.rar.uu \ libarchive/test/test_read_format_rar_encryption_header.rar.uu \ libarchive/test/test_read_format_rar_encryption_partially.rar.uu \ + libarchive/test/test_read_format_rar_invalid1.rar.uu \ libarchive/test/test_read_format_rar_multi_lzss_blocks.rar.uu \ libarchive/test/test_read_format_rar_multivolume.part0001.rar.uu \ libarchive/test/test_read_format_rar_multivolume.part0002.rar.uu \ @@ -2579,6 +2588,7 @@ bsdtar_test_SOURCES = \ tar/test/test_format_newc.c \ tar/test/test_help.c \ tar/test/test_leading_slash.c \ + tar/test/test_missing_file.c \ tar/test/test_option_C_upper.c \ tar/test/test_option_H_upper.c \ tar/test/test_option_L_upper.c \ @@ -2704,6 +2714,7 @@ bsdcpio_test_SOURCES = \ cpio/test/test_extract_cpio_xz.c \ cpio/test/test_format_newc.c \ cpio/test/test_gcpio_compat.c \ + cpio/test/test_missing_file.c \ cpio/test/test_option_0.c \ cpio/test/test_option_B_upper.c \ cpio/test/test_option_C_upper.c \ @@ -3454,6 +3465,8 @@ cpio/test/bsdcpio_test-test_format_newc.$(OBJEXT): \ cpio/test/$(am__dirstamp) cpio/test/$(DEPDIR)/$(am__dirstamp) cpio/test/bsdcpio_test-test_gcpio_compat.$(OBJEXT): \ cpio/test/$(am__dirstamp) cpio/test/$(DEPDIR)/$(am__dirstamp) +cpio/test/bsdcpio_test-test_missing_file.$(OBJEXT): \ + cpio/test/$(am__dirstamp) cpio/test/$(DEPDIR)/$(am__dirstamp) cpio/test/bsdcpio_test-test_option_0.$(OBJEXT): \ cpio/test/$(am__dirstamp) cpio/test/$(DEPDIR)/$(am__dirstamp) cpio/test/bsdcpio_test-test_option_B_upper.$(OBJEXT): \ @@ -3589,6 +3602,8 @@ tar/test/bsdtar_test-test_help.$(OBJEXT): tar/test/$(am__dirstamp) \ tar/test/$(DEPDIR)/$(am__dirstamp) tar/test/bsdtar_test-test_leading_slash.$(OBJEXT): \ tar/test/$(am__dirstamp) tar/test/$(DEPDIR)/$(am__dirstamp) +tar/test/bsdtar_test-test_missing_file.$(OBJEXT): \ + tar/test/$(am__dirstamp) tar/test/$(DEPDIR)/$(am__dirstamp) tar/test/bsdtar_test-test_option_C_upper.$(OBJEXT): \ tar/test/$(am__dirstamp) tar/test/$(DEPDIR)/$(am__dirstamp) tar/test/bsdtar_test-test_option_H_upper.$(OBJEXT): \ @@ -4442,6 +4457,9 @@ libarchive/test/libarchive_test-test_read_format_rar_encryption_partially.$(OBJE libarchive/test/libarchive_test-test_read_format_rar_encryption_header.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) +libarchive/test/libarchive_test-test_read_format_rar_invalid1.$(OBJEXT): \ + libarchive/test/$(am__dirstamp) \ + libarchive/test/$(DEPDIR)/$(am__dirstamp) libarchive/test/libarchive_test-test_read_format_raw.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) @@ -4679,6 +4697,9 @@ libarchive/test/libarchive_test-test_write_format_cpio_odc.$(OBJEXT): \ libarchive/test/libarchive_test-test_write_format_gnutar.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) +libarchive/test/libarchive_test-test_write_format_gnutar_filenames.$(OBJEXT): \ + libarchive/test/$(am__dirstamp) \ + libarchive/test/$(DEPDIR)/$(am__dirstamp) libarchive/test/libarchive_test-test_write_format_iso9660.$(OBJEXT): \ libarchive/test/$(am__dirstamp) \ libarchive/test/$(DEPDIR)/$(am__dirstamp) @@ -4848,6 +4869,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_extract_cpio_xz.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_format_newc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_gcpio_compat.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_missing_file.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_0.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_B_upper.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@cpio/test/$(DEPDIR)/bsdcpio_test-test_option_C_upper.Po@am__quote@ @@ -5250,6 +5272,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_encryption_data.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_encryption_header.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_encryption_partially.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_invalid1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_raw.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_tar_concatenated.Po@am__quote@ @@ -5329,6 +5352,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_cpio_newc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_cpio_odc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_gnutar.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_gnutar_filenames.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660_boot.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660_empty.Po@am__quote@ @@ -5394,6 +5418,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_format_newc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_help.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_leading_slash.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_missing_file.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_C_upper.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_H_upper.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_L_upper.Po@am__quote@ @@ -6043,6 +6068,20 @@ cpio/test/bsdcpio_test-test_gcpio_compat.obj: cpio/test/test_gcpio_compat.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bsdcpio_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cpio/test/bsdcpio_test-test_gcpio_compat.obj `if test -f 'cpio/test/test_gcpio_compat.c'; then $(CYGPATH_W) 'cpio/test/test_gcpio_compat.c'; else $(CYGPATH_W) '$(srcdir)/cpio/test/test_gcpio_compat.c'; fi` +cpio/test/bsdcpio_test-test_missing_file.o: cpio/test/test_missing_file.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bsdcpio_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cpio/test/bsdcpio_test-test_missing_file.o -MD -MP -MF cpio/test/$(DEPDIR)/bsdcpio_test-test_missing_file.Tpo -c -o cpio/test/bsdcpio_test-test_missing_file.o `test -f 'cpio/test/test_missing_file.c' || echo '$(srcdir)/'`cpio/test/test_missing_file.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) cpio/test/$(DEPDIR)/bsdcpio_test-test_missing_file.Tpo cpio/test/$(DEPDIR)/bsdcpio_test-test_missing_file.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cpio/test/test_missing_file.c' object='cpio/test/bsdcpio_test-test_missing_file.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) $(bsdcpio_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cpio/test/bsdcpio_test-test_missing_file.o `test -f 'cpio/test/test_missing_file.c' || echo '$(srcdir)/'`cpio/test/test_missing_file.c + +cpio/test/bsdcpio_test-test_missing_file.obj: cpio/test/test_missing_file.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bsdcpio_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cpio/test/bsdcpio_test-test_missing_file.obj -MD -MP -MF cpio/test/$(DEPDIR)/bsdcpio_test-test_missing_file.Tpo -c -o cpio/test/bsdcpio_test-test_missing_file.obj `if test -f 'cpio/test/test_missing_file.c'; then $(CYGPATH_W) 'cpio/test/test_missing_file.c'; else $(CYGPATH_W) '$(srcdir)/cpio/test/test_missing_file.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) cpio/test/$(DEPDIR)/bsdcpio_test-test_missing_file.Tpo cpio/test/$(DEPDIR)/bsdcpio_test-test_missing_file.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cpio/test/test_missing_file.c' object='cpio/test/bsdcpio_test-test_missing_file.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) $(bsdcpio_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cpio/test/bsdcpio_test-test_missing_file.obj `if test -f 'cpio/test/test_missing_file.c'; then $(CYGPATH_W) 'cpio/test/test_missing_file.c'; else $(CYGPATH_W) '$(srcdir)/cpio/test/test_missing_file.c'; fi` + cpio/test/bsdcpio_test-test_option_0.o: cpio/test/test_option_0.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bsdcpio_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cpio/test/bsdcpio_test-test_option_0.o -MD -MP -MF cpio/test/$(DEPDIR)/bsdcpio_test-test_option_0.Tpo -c -o cpio/test/bsdcpio_test-test_option_0.o `test -f 'cpio/test/test_option_0.c' || echo '$(srcdir)/'`cpio/test/test_option_0.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) cpio/test/$(DEPDIR)/bsdcpio_test-test_option_0.Tpo cpio/test/$(DEPDIR)/bsdcpio_test-test_option_0.Po @@ -6841,6 +6880,20 @@ tar/test/bsdtar_test-test_leading_slash.obj: tar/test/test_leading_slash.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bsdtar_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tar/test/bsdtar_test-test_leading_slash.obj `if test -f 'tar/test/test_leading_slash.c'; then $(CYGPATH_W) 'tar/test/test_leading_slash.c'; else $(CYGPATH_W) '$(srcdir)/tar/test/test_leading_slash.c'; fi` +tar/test/bsdtar_test-test_missing_file.o: tar/test/test_missing_file.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bsdtar_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tar/test/bsdtar_test-test_missing_file.o -MD -MP -MF tar/test/$(DEPDIR)/bsdtar_test-test_missing_file.Tpo -c -o tar/test/bsdtar_test-test_missing_file.o `test -f 'tar/test/test_missing_file.c' || echo '$(srcdir)/'`tar/test/test_missing_file.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) tar/test/$(DEPDIR)/bsdtar_test-test_missing_file.Tpo tar/test/$(DEPDIR)/bsdtar_test-test_missing_file.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tar/test/test_missing_file.c' object='tar/test/bsdtar_test-test_missing_file.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) $(bsdtar_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tar/test/bsdtar_test-test_missing_file.o `test -f 'tar/test/test_missing_file.c' || echo '$(srcdir)/'`tar/test/test_missing_file.c + +tar/test/bsdtar_test-test_missing_file.obj: tar/test/test_missing_file.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bsdtar_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tar/test/bsdtar_test-test_missing_file.obj -MD -MP -MF tar/test/$(DEPDIR)/bsdtar_test-test_missing_file.Tpo -c -o tar/test/bsdtar_test-test_missing_file.obj `if test -f 'tar/test/test_missing_file.c'; then $(CYGPATH_W) 'tar/test/test_missing_file.c'; else $(CYGPATH_W) '$(srcdir)/tar/test/test_missing_file.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) tar/test/$(DEPDIR)/bsdtar_test-test_missing_file.Tpo tar/test/$(DEPDIR)/bsdtar_test-test_missing_file.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tar/test/test_missing_file.c' object='tar/test/bsdtar_test-test_missing_file.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) $(bsdtar_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tar/test/bsdtar_test-test_missing_file.obj `if test -f 'tar/test/test_missing_file.c'; then $(CYGPATH_W) 'tar/test/test_missing_file.c'; else $(CYGPATH_W) '$(srcdir)/tar/test/test_missing_file.c'; fi` + tar/test/bsdtar_test-test_option_C_upper.o: tar/test/test_option_C_upper.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bsdtar_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tar/test/bsdtar_test-test_option_C_upper.o -MD -MP -MF tar/test/$(DEPDIR)/bsdtar_test-test_option_C_upper.Tpo -c -o tar/test/bsdtar_test-test_option_C_upper.o `test -f 'tar/test/test_option_C_upper.c' || echo '$(srcdir)/'`tar/test/test_option_C_upper.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) tar/test/$(DEPDIR)/bsdtar_test-test_option_C_upper.Tpo tar/test/$(DEPDIR)/bsdtar_test-test_option_C_upper.Po @@ -10957,6 +11010,20 @@ libarchive/test/libarchive_test-test_read_format_rar_encryption_header.obj: liba @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/libarchive_test-test_read_format_rar_encryption_header.obj `if test -f 'libarchive/test/test_read_format_rar_encryption_header.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_rar_encryption_header.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_rar_encryption_header.c'; fi` +libarchive/test/libarchive_test-test_read_format_rar_invalid1.o: libarchive/test/test_read_format_rar_invalid1.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_rar_invalid1.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_invalid1.Tpo -c -o libarchive/test/libarchive_test-test_read_format_rar_invalid1.o `test -f 'libarchive/test/test_read_format_rar_invalid1.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_rar_invalid1.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_invalid1.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_invalid1.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_rar_invalid1.c' object='libarchive/test/libarchive_test-test_read_format_rar_invalid1.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/libarchive_test-test_read_format_rar_invalid1.o `test -f 'libarchive/test/test_read_format_rar_invalid1.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_rar_invalid1.c + +libarchive/test/libarchive_test-test_read_format_rar_invalid1.obj: libarchive/test/test_read_format_rar_invalid1.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_read_format_rar_invalid1.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_invalid1.Tpo -c -o libarchive/test/libarchive_test-test_read_format_rar_invalid1.obj `if test -f 'libarchive/test/test_read_format_rar_invalid1.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_rar_invalid1.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_rar_invalid1.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_invalid1.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_rar_invalid1.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_rar_invalid1.c' object='libarchive/test/libarchive_test-test_read_format_rar_invalid1.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/libarchive_test-test_read_format_rar_invalid1.obj `if test -f 'libarchive/test/test_read_format_rar_invalid1.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_rar_invalid1.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_rar_invalid1.c'; fi` + libarchive/test/libarchive_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/libarchive_test-test_read_format_raw.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_raw.Tpo -c -o libarchive/test/libarchive_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)/libarchive_test-test_read_format_raw.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_read_format_raw.Po @@ -12063,6 +12130,20 @@ libarchive/test/libarchive_test-test_write_format_gnutar.obj: libarchive/test/te @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/libarchive_test-test_write_format_gnutar.obj `if test -f 'libarchive/test/test_write_format_gnutar.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_gnutar.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_gnutar.c'; fi` +libarchive/test/libarchive_test-test_write_format_gnutar_filenames.o: libarchive/test/test_write_format_gnutar_filenames.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_gnutar_filenames.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_gnutar_filenames.Tpo -c -o libarchive/test/libarchive_test-test_write_format_gnutar_filenames.o `test -f 'libarchive/test/test_write_format_gnutar_filenames.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_gnutar_filenames.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_gnutar_filenames.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_gnutar_filenames.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_gnutar_filenames.c' object='libarchive/test/libarchive_test-test_write_format_gnutar_filenames.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/libarchive_test-test_write_format_gnutar_filenames.o `test -f 'libarchive/test/test_write_format_gnutar_filenames.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_gnutar_filenames.c + +libarchive/test/libarchive_test-test_write_format_gnutar_filenames.obj: libarchive/test/test_write_format_gnutar_filenames.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_gnutar_filenames.obj -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_gnutar_filenames.Tpo -c -o libarchive/test/libarchive_test-test_write_format_gnutar_filenames.obj `if test -f 'libarchive/test/test_write_format_gnutar_filenames.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_gnutar_filenames.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_gnutar_filenames.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_gnutar_filenames.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_gnutar_filenames.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_write_format_gnutar_filenames.c' object='libarchive/test/libarchive_test-test_write_format_gnutar_filenames.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/libarchive_test-test_write_format_gnutar_filenames.obj `if test -f 'libarchive/test/test_write_format_gnutar_filenames.c'; then $(CYGPATH_W) 'libarchive/test/test_write_format_gnutar_filenames.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_write_format_gnutar_filenames.c'; fi` + libarchive/test/libarchive_test-test_write_format_iso9660.o: libarchive/test/test_write_format_iso9660.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/libarchive_test-test_write_format_iso9660.o -MD -MP -MF libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660.Tpo -c -o libarchive/test/libarchive_test-test_write_format_iso9660.o `test -f 'libarchive/test/test_write_format_iso9660.c' || echo '$(srcdir)/'`libarchive/test/test_write_format_iso9660.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660.Tpo libarchive/test/$(DEPDIR)/libarchive_test-test_write_format_iso9660.Po diff --git a/NEWS b/NEWS index 5bf8776..f672d3d 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,8 @@ +Jun 20, 2016: libarchive 3.2.1 released + This fixes a handful of security and other critical issues with 3.2.0 + +May 01, 2016: libarchive 3.2.0 released + Apr 09, 2016: libarchive 3.1.901a released Another test release in preparation for 3.2.0 diff --git a/build/autoconf/config.guess b/build/autoconf/config.guess index 1f5c50c..c4bd827 100755 --- a/build/autoconf/config.guess +++ b/build/autoconf/config.guess @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2014 Free Software Foundation, Inc. +# Copyright 1992-2016 Free Software Foundation, Inc. -timestamp='2014-03-23' +timestamp='2016-05-15' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -24,12 +24,12 @@ timestamp='2014-03-23' # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # -# Originally written by Per Bothner. +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess # -# Please send patches with a ChangeLog entry to config-patches@gnu.org. +# Please send patches to . me=`echo "$0" | sed -e 's,.*/,,'` @@ -50,7 +50,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2014 Free Software Foundation, Inc. +Copyright 1992-2016 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -168,19 +168,29 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + /sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || \ + echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` + machine=${arch}${endian}-unknown + ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. + # to ELF recently (or will in the future) and ABI. case "${UNAME_MACHINE_ARCH}" in + earm*) + os=netbsdelf + ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ @@ -197,6 +207,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in os=netbsd ;; esac + # Determine ABI tags. + case "${UNAME_MACHINE_ARCH}" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` + ;; + esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need @@ -207,13 +224,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in release='-gnu' ;; *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" + echo "${machine}-${os}${release}${abi}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` @@ -223,6 +240,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} + exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; @@ -235,6 +256,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; + *:Sortix:*:*) + echo ${UNAME_MACHINE}-unknown-sortix + exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) @@ -251,42 +275,42 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; + UNAME_MACHINE=alphaev5 ;; "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; + UNAME_MACHINE=alphaev56 ;; "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; + UNAME_MACHINE=alphapca56 ;; "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; + UNAME_MACHINE=alphapca57 ;; "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; + UNAME_MACHINE=alphaev6 ;; "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; + UNAME_MACHINE=alphaev67 ;; "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; + UNAME_MACHINE=alphaev69 ;; "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; + UNAME_MACHINE=alphaev7 ;; "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; + UNAME_MACHINE=alphaev79 ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 @@ -359,16 +383,16 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build - SUN_ARCH="i386" + SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then - SUN_ARCH="x86_64" + SUN_ARCH=x86_64 fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` @@ -393,7 +417,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} @@ -579,8 +603,9 @@ EOF else IBM_ARCH=powerpc fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` + if [ -x /usr/bin/lslpp ] ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi @@ -617,13 +642,13 @@ EOF sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi @@ -662,11 +687,11 @@ EOF exit (0); } EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac - if [ ${HP_ARCH} = "hppa2.0w" ] + if [ ${HP_ARCH} = hppa2.0w ] then eval $set_cc_for_build @@ -679,12 +704,12 @@ EOF # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then - HP_ARCH="hppa2.0w" + HP_ARCH=hppa2.0w else - HP_ARCH="hppa64" + HP_ARCH=hppa64 fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} @@ -789,14 +814,14 @@ EOF echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) @@ -878,7 +903,7 @@ EOF exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix @@ -901,7 +926,7 @@ EOF EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="gnulibc1" ; fi + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arc:Linux:*:* | arceb:Linux:*:*) @@ -932,6 +957,9 @@ EOF crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; + e2k:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; @@ -944,6 +972,9 @@ EOF ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; + k1om:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; @@ -1020,7 +1051,7 @@ EOF echo ${UNAME_MACHINE}-dec-linux-${LIBC} exit ;; x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} @@ -1099,7 +1130,7 @@ EOF # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configury will decide that + # prints for the "djgpp" host, or else GDB configure will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; @@ -1248,6 +1279,9 @@ EOF SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; + SX-ACE:SUPER-UX:*:*) + echo sxace-nec-superux${UNAME_RELEASE} + exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; @@ -1261,9 +1295,9 @@ EOF UNAME_PROCESSOR=powerpc fi if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in @@ -1285,7 +1319,7 @@ EOF exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then + if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi @@ -1316,7 +1350,7 @@ EOF # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. - if test "$cputype" = "386"; then + if test "$cputype" = 386; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" @@ -1358,7 +1392,7 @@ EOF echo i386-pc-xenix exit ;; i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'` exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos @@ -1369,23 +1403,25 @@ EOF x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; + amd64:Isilon\ OneFS:*:*) + echo x86_64-unknown-onefs + exit ;; esac cat >&2 < in order to provide the needed -information to handle your system. +If $0 has already been updated, send the following data and any +information you think might be pertinent to config-patches@gnu.org to +provide the necessary information to handle your system. config.guess timestamp = $timestamp diff --git a/build/autoconf/config.sub b/build/autoconf/config.sub index bba4efb..9feb73b 100755 --- a/build/autoconf/config.sub +++ b/build/autoconf/config.sub @@ -1,8 +1,8 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2014 Free Software Foundation, Inc. +# Copyright 1992-2016 Free Software Foundation, Inc. -timestamp='2014-09-11' +timestamp='2016-06-20' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -25,7 +25,7 @@ timestamp='2014-09-11' # of the GNU General Public License, version 3 ("GPLv3"). -# Please send patches with a ChangeLog entry to config-patches@gnu.org. +# Please send patches to . # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. @@ -33,7 +33,7 @@ timestamp='2014-09-11' # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases @@ -53,8 +53,7 @@ timestamp='2014-09-11' me=`echo "$0" | sed -e 's,.*/,,'` usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. @@ -68,7 +67,7 @@ Report bugs and patches to ." version="\ GNU config.sub ($timestamp) -Copyright 1992-2014 Free Software Foundation, Inc. +Copyright 1992-2016 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -117,7 +116,7 @@ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ - knetbsd*-gnu* | netbsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os @@ -255,12 +254,13 @@ case $basic_machine in | arc | arceb \ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ | avr | avr32 \ + | ba \ | be32 | be64 \ | bfin \ | c4x | c8051 | clipper \ | d10v | d30v | dlx | dsp16xx \ - | epiphany \ - | fido | fr30 | frv \ + | e2k | epiphany \ + | fido | fr30 | frv | ft32 \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia64 \ @@ -305,7 +305,7 @@ case $basic_machine in | riscv32 | riscv64 \ | rl78 | rx \ | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ @@ -313,6 +313,7 @@ case $basic_machine in | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | visium \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) @@ -327,6 +328,9 @@ case $basic_machine in c6x) basic_machine=tic6x-unknown ;; + leon|leon[3-9]) + basic_machine=sparc-$basic_machine + ;; m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) basic_machine=$basic_machine-unknown os=-none @@ -372,12 +376,13 @@ case $basic_machine in | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ + | ba-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | c8051-* | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ + | e2k-* | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ @@ -424,12 +429,13 @@ case $basic_machine in | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ + | riscv32-* | riscv64-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ @@ -437,6 +443,7 @@ case $basic_machine in | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ + | visium-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ @@ -513,6 +520,9 @@ case $basic_machine in basic_machine=i386-pc os=-aros ;; + asmjs) + basic_machine=asmjs-unknown + ;; aux) basic_machine=m68k-apple os=-aux @@ -633,6 +643,14 @@ case $basic_machine in basic_machine=m68k-bull os=-sysv3 ;; + e500v[12]) + basic_machine=powerpc-unknown + os=$os"spe" + ;; + e500v[12]-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + os=$os"spe" + ;; ebmon29k) basic_machine=a29k-amd os=-ebmon @@ -774,6 +792,9 @@ case $basic_machine in basic_machine=m68k-isi os=-sysv ;; + leon-*|leon[3-9]-*) + basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` + ;; m68knommu) basic_machine=m68k-unknown os=-linux @@ -1365,18 +1386,18 @@ case $os in | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* \ + | -aos* | -aros* | -cloudabi* | -sortix* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -bitrig* | -openbsd* | -solidbsd* \ + | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ @@ -1385,7 +1406,8 @@ case $os in | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*) + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ + | -onefs* | -tirtos* | -phoenix*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1517,6 +1539,8 @@ case $os in ;; -nacl*) ;; + -ios) + ;; -none) ;; *) diff --git a/build/version b/build/version index 595378f..f293156 100644 --- a/build/version +++ b/build/version @@ -1 +1 @@ -3002000 +3002001 diff --git a/cat/bsdcat.c b/cat/bsdcat.c index af140e0..9ef75a6 100644 --- a/cat/bsdcat.c +++ b/cat/bsdcat.c @@ -42,10 +42,10 @@ __FBSDID("$FreeBSD$"); #define BYTES_PER_BLOCK (20*512) -struct archive *a; -struct archive_entry *ae; -char *bsdcat_current_path; -int exit_status = 0; +static struct archive *a; +static struct archive_entry *ae; +static const char *bsdcat_current_path; +static int exit_status = 0; void @@ -68,7 +68,7 @@ version(void) } void -bsdcat_next() +bsdcat_next(void) { a = archive_read_new(); archive_read_support_filter_all(a); @@ -85,7 +85,7 @@ bsdcat_print_error(void) } void -bsdcat_read_to_stdout(char* filename) +bsdcat_read_to_stdout(const char* filename) { int r; diff --git a/cat/bsdcat.h b/cat/bsdcat.h index ca603d3..2e055e7 100644 --- a/cat/bsdcat.h +++ b/cat/bsdcat.h @@ -53,4 +53,4 @@ int bsdcat_getopt(struct bsdcat *); void usage(FILE *stream, int eval); void bsdcat_next(void); void bsdcat_print_error(void); -void bsdcat_read_to_stdout(char* filename); +void bsdcat_read_to_stdout(const char* filename); diff --git a/cat/test/main.c b/cat/test/main.c index 319f68c..0aa1deb 100644 --- a/cat/test/main.c +++ b/cat/test/main.c @@ -2534,18 +2534,36 @@ usage(const char *program) static char * get_refdir(const char *d) { - char tried[512] = { '\0' }; - char buff[128]; - char *pwd, *p; + size_t tried_size, buff_size; + char *buff, *tried, *pwd = NULL, *p = NULL; + +#ifdef PATH_MAX + buff_size = PATH_MAX; +#else + buff_size = 8192; +#endif + buff = calloc(buff_size, 1); + if (buff == NULL) { + fprintf(stderr, "Unable to allocate memory\n"); + exit(1); + } + + /* Allocate a buffer to hold the various directories we checked. */ + tried_size = buff_size * 2; + tried = calloc(tried_size, 1); + if (tried == NULL) { + fprintf(stderr, "Unable to allocate memory\n"); + exit(1); + } /* If a dir was specified, try that */ if (d != NULL) { pwd = NULL; - snprintf(buff, sizeof(buff), "%s", d); + snprintf(buff, buff_size, "%s", d); p = slurpfile(NULL, "%s/%s", buff, KNOWNREF); if (p != NULL) goto success; - strncat(tried, buff, sizeof(tried) - strlen(tried) - 1); - strncat(tried, "\n", sizeof(tried) - strlen(tried) - 1); + strncat(tried, buff, tried_size - strlen(tried) - 1); + strncat(tried, "\n", tried_size - strlen(tried) - 1); goto failure; } @@ -2559,48 +2577,48 @@ get_refdir(const char *d) pwd[strlen(pwd) - 1] = '\0'; /* Look for a known file. */ - snprintf(buff, sizeof(buff), "%s", pwd); + snprintf(buff, buff_size, "%s", pwd); p = slurpfile(NULL, "%s/%s", buff, KNOWNREF); if (p != NULL) goto success; - strncat(tried, buff, sizeof(tried) - strlen(tried) - 1); - strncat(tried, "\n", sizeof(tried) - strlen(tried) - 1); + strncat(tried, buff, tried_size - strlen(tried) - 1); + strncat(tried, "\n", tried_size - strlen(tried) - 1); - snprintf(buff, sizeof(buff), "%s/test", pwd); + snprintf(buff, buff_size, "%s/test", pwd); p = slurpfile(NULL, "%s/%s", buff, KNOWNREF); if (p != NULL) goto success; - strncat(tried, buff, sizeof(tried) - strlen(tried) - 1); - strncat(tried, "\n", sizeof(tried) - strlen(tried) - 1); + strncat(tried, buff, tried_size - strlen(tried) - 1); + strncat(tried, "\n", tried_size - strlen(tried) - 1); #if defined(LIBRARY) - snprintf(buff, sizeof(buff), "%s/%s/test", pwd, LIBRARY); + snprintf(buff, buff_size, "%s/%s/test", pwd, LIBRARY); #else - snprintf(buff, sizeof(buff), "%s/%s/test", pwd, PROGRAM); + snprintf(buff, buff_size, "%s/%s/test", pwd, PROGRAM); #endif p = slurpfile(NULL, "%s/%s", buff, KNOWNREF); if (p != NULL) goto success; - strncat(tried, buff, sizeof(tried) - strlen(tried) - 1); - strncat(tried, "\n", sizeof(tried) - strlen(tried) - 1); + strncat(tried, buff, tried_size - strlen(tried) - 1); + strncat(tried, "\n", tried_size - strlen(tried) - 1); #if defined(PROGRAM_ALIAS) - snprintf(buff, sizeof(buff), "%s/%s/test", pwd, PROGRAM_ALIAS); + snprintf(buff, buff_size, "%s/%s/test", pwd, PROGRAM_ALIAS); p = slurpfile(NULL, "%s/%s", buff, KNOWNREF); if (p != NULL) goto success; - strncat(tried, buff, sizeof(tried) - strlen(tried) - 1); - strncat(tried, "\n", sizeof(tried) - strlen(tried) - 1); + strncat(tried, buff, tried_size - strlen(tried) - 1); + strncat(tried, "\n", tried_size - strlen(tried) - 1); #endif if (memcmp(pwd, "/usr/obj", 8) == 0) { - snprintf(buff, sizeof(buff), "%s", pwd + 8); + snprintf(buff, buff_size, "%s", pwd + 8); p = slurpfile(NULL, "%s/%s", buff, KNOWNREF); if (p != NULL) goto success; - strncat(tried, buff, sizeof(tried) - strlen(tried) - 1); - strncat(tried, "\n", sizeof(tried) - strlen(tried) - 1); + strncat(tried, buff, tried_size - strlen(tried) - 1); + strncat(tried, "\n", tried_size - strlen(tried) - 1); - snprintf(buff, sizeof(buff), "%s/test", pwd + 8); + snprintf(buff, buff_size, "%s/test", pwd + 8); p = slurpfile(NULL, "%s/%s", buff, KNOWNREF); if (p != NULL) goto success; - strncat(tried, buff, sizeof(tried) - strlen(tried) - 1); - strncat(tried, "\n", sizeof(tried) - strlen(tried) - 1); + strncat(tried, buff, tried_size - strlen(tried) - 1); + strncat(tried, "\n", tried_size - strlen(tried) - 1); } failure: @@ -2615,7 +2633,12 @@ failure: success: free(p); free(pwd); - return strdup(buff); + free(tried); + + /* Copy result into a fresh buffer to reduce memory usage. */ + p = strdup(buff); + free(buff); + return p; } int diff --git a/config.h.in b/config.h.in index 642e409..f5bc56f 100644 --- a/config.h.in +++ b/config.h.in @@ -558,6 +558,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_LZMA_H +/* Define to 1 if you have the `lzma_stream_encoder_mt' function. */ +#undef HAVE_LZMA_STREAM_ENCODER_MT + /* Define to 1 if you have the header file. */ #undef HAVE_LZO_LZO1X_H diff --git a/configure b/configure index cb9932a..892401d 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for libarchive 3.2.0. +# Generated by GNU Autoconf 2.69 for libarchive 3.2.1. # # Report bugs to . # @@ -590,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='libarchive' PACKAGE_TARNAME='libarchive' -PACKAGE_VERSION='3.2.0' -PACKAGE_STRING='libarchive 3.2.0' +PACKAGE_VERSION='3.2.1' +PACKAGE_STRING='libarchive 3.2.1' PACKAGE_BUGREPORT='libarchive-discuss@googlegroups.com' PACKAGE_URL='' @@ -1366,7 +1366,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.2.0 to adapt to many kinds of systems. +\`configure' configures libarchive 3.2.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1436,7 +1436,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libarchive 3.2.0:";; + short | recursive ) echo "Configuration of libarchive 3.2.1:";; esac cat <<\_ACEOF @@ -1479,8 +1479,8 @@ Optional Features: use libpcreposix POSIX regular expression support --disable-posix-regex-lib don't enable POSIX regular expression support - --disable-xattr Enable Extended Attributes support (default: check) - --disable-acl Enable ACL support (default: check) + --disable-xattr Disable Extended Attributes support (default: check) + --disable-acl Disable ACL support (default: check) --disable-largefile omit support for large files Optional Packages: @@ -1592,7 +1592,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libarchive configure 3.2.0 +libarchive configure 3.2.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2431,7 +2431,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.2.0, which was +It was created by libarchive $as_me 3.2.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3300,7 +3300,7 @@ fi # Define the identity of the package. PACKAGE='libarchive' - VERSION='3.2.0' + VERSION='3.2.1' cat >>confdefs.h <<_ACEOF @@ -3437,7 +3437,7 @@ AM_BACKSLASH='\' # Libtool interface version bumps on any API change, so increments # whenever libarchive minor version does. -ARCHIVE_MINOR=$(( (3002000 / 1000) % 1000 )) +ARCHIVE_MINOR=$(( (3002001 / 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 + 8 @@ -3445,37 +3445,37 @@ ARCHIVE_MINOR=$(( (3002000 / 1000) % 1000 )) # Libarchive 3.1 == libtool interface 13 ARCHIVE_INTERFACE=`echo $((13 + ${ARCHIVE_MINOR}))` # Libarchive revision is bumped on any source change === libtool revision -ARCHIVE_REVISION=$(( 3002000 % 1000 )) +ARCHIVE_REVISION=$(( 3002001 % 1000 )) # Libarchive minor is bumped on any interface addition === libtool age ARCHIVE_LIBTOOL_VERSION=$ARCHIVE_INTERFACE:$ARCHIVE_REVISION:$ARCHIVE_MINOR # Stick the version numbers into config.h -$as_echo "#define LIBARCHIVE_VERSION_STRING \"3.2.0\"" >>confdefs.h +$as_echo "#define LIBARCHIVE_VERSION_STRING \"3.2.1\"" >>confdefs.h cat >>confdefs.h <<_ACEOF -#define LIBARCHIVE_VERSION_NUMBER "3002000" +#define LIBARCHIVE_VERSION_NUMBER "3002001" _ACEOF -$as_echo "#define BSDCPIO_VERSION_STRING \"3.2.0\"" >>confdefs.h +$as_echo "#define BSDCPIO_VERSION_STRING \"3.2.1\"" >>confdefs.h -$as_echo "#define BSDTAR_VERSION_STRING \"3.2.0\"" >>confdefs.h +$as_echo "#define BSDTAR_VERSION_STRING \"3.2.1\"" >>confdefs.h -$as_echo "#define BSDCAT_VERSION_STRING \"3.2.0\"" >>confdefs.h +$as_echo "#define BSDCAT_VERSION_STRING \"3.2.1\"" >>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.2.0 -BSDTAR_VERSION_STRING=3.2.0 -BSDCAT_VERSION_STRING=3.2.0 -LIBARCHIVE_VERSION_STRING=3.2.0 -LIBARCHIVE_VERSION_NUMBER=3002000 +BSDCPIO_VERSION_STRING=3.2.1 +BSDTAR_VERSION_STRING=3.2.1 +BSDCAT_VERSION_STRING=3.2.1 +LIBARCHIVE_VERSION_STRING=3.2.1 +LIBARCHIVE_VERSION_NUMBER=3002001 # Substitute the above version numbers into the various files below. # Yes, I believe this is the fourth time we define what are essentially @@ -13018,7 +13018,7 @@ $as_echo "#define HAVE_SYS_WAIT_H 1" >>confdefs.h fi -for ac_header in acl/libacl.h attr/xattr.h copyfile.h ctype.h +for ac_header in copyfile.h ctype.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" @@ -13145,7 +13145,7 @@ fi done -for ac_header in sys/acl.h sys/cdefs.h sys/extattr.h +for ac_header in sys/cdefs.h sys/extattr.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" @@ -14750,6 +14750,11 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lzma_has_mt" >&5 $as_echo "$ac_cv_lzma_has_mt" >&6; } + if test "x$ac_cv_lzma_has_mt" != xno; then + +$as_echo "#define HAVE_LZMA_STREAM_ENCODER_MT 1" >>confdefs.h + + fi fi @@ -17481,6 +17486,18 @@ fi if test "x$enable_acl" != "xno"; then + for ac_header in acl/libacl.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "acl/libacl.h" "ac_cv_header_acl_libacl_h" "$ac_includes_default" +if test "x$ac_cv_header_acl_libacl_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_ACL_LIBACL_H 1 +_ACEOF + +fi + +done + for ac_header in sys/acl.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/acl.h" "ac_cv_header_sys_acl_h" "$ac_includes_default" @@ -20505,7 +20522,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # 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.2.0, which was +This file was extended by libarchive $as_me 3.2.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -20571,7 +20588,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -libarchive config.status 3.2.0 +libarchive config.status 3.2.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 1ab54cb..e15ceee 100644 --- a/configure.ac +++ b/configure.ac @@ -4,8 +4,8 @@ dnl First, define all of the version numbers up front. 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.2.0]) -m4_define([LIBARCHIVE_VERSION_N],[3002000]) +m4_define([LIBARCHIVE_VERSION_S],[3.2.1]) +m4_define([LIBARCHIVE_VERSION_N],[3002001]) dnl bsdtar and bsdcpio versioning tracks libarchive m4_define([BSDTAR_VERSION_S],LIBARCHIVE_VERSION_S()) @@ -252,7 +252,7 @@ esac # Checks for header files. AC_HEADER_DIRENT AC_HEADER_SYS_WAIT -AC_CHECK_HEADERS([acl/libacl.h attr/xattr.h copyfile.h ctype.h]) +AC_CHECK_HEADERS([copyfile.h ctype.h]) AC_CHECK_HEADERS([errno.h ext2fs/ext2_fs.h fcntl.h grp.h]) AC_CACHE_CHECK([whether EXT2_IOC_GETFLAGS is usable], @@ -272,7 +272,7 @@ AC_CHECK_HEADERS([linux/fiemap.h linux/fs.h linux/magic.h linux/types.h]) AC_CHECK_HEADERS([locale.h paths.h poll.h pthread.h pwd.h]) AC_CHECK_HEADERS([readpassphrase.h signal.h spawn.h]) AC_CHECK_HEADERS([stdarg.h stdint.h stdlib.h string.h]) -AC_CHECK_HEADERS([sys/acl.h sys/cdefs.h sys/extattr.h]) +AC_CHECK_HEADERS([sys/cdefs.h sys/extattr.h]) AC_CHECK_HEADERS([sys/ioctl.h sys/mkdev.h sys/mount.h]) AC_CHECK_HEADERS([sys/param.h sys/poll.h sys/select.h sys/statfs.h sys/statvfs.h]) AC_CHECK_HEADERS([sys/time.h sys/utime.h sys/utsname.h sys/vfs.h]) @@ -377,6 +377,9 @@ if test "x$with_lzma" != "xno"; then AC_LANG_PROGRAM([[#include ]], [[lzma_stream_encoder_mt(0, 0);]])], [ac_cv_lzma_has_mt=yes], [ac_cv_lzma_has_mt=no])]) + if test "x$ac_cv_lzma_has_mt" != xno; then + AC_DEFINE([HAVE_LZMA_STREAM_ENCODER_MT], [1], [Define to 1 if you have the `lzma_stream_encoder_mt' function.]) + fi fi AC_ARG_WITH([lzo2], @@ -641,7 +644,7 @@ AC_CHECK_MEMBER(struct dirent.d_namlen,,, # Check for Extended Attributes support AC_ARG_ENABLE([xattr], AS_HELP_STRING([--disable-xattr], - [Enable Extended Attributes support (default: check)])) + [Disable Extended Attributes support (default: check)])) if test "x$enable_xattr" != "xno"; then AC_CHECK_HEADERS([attr/xattr.h]) @@ -667,9 +670,10 @@ fi # AC_ARG_ENABLE([acl], AS_HELP_STRING([--disable-acl], - [Enable ACL support (default: check)])) + [Disable ACL support (default: check)])) if test "x$enable_acl" != "xno"; then + AC_CHECK_HEADERS([acl/libacl.h]) AC_CHECK_HEADERS([sys/acl.h]) AC_CHECK_LIB([acl],[acl_get_file]) AC_CHECK_FUNCS([acl_create_entry acl_init acl_set_fd acl_set_fd_np acl_set_file]) diff --git a/cpio/cpio.c b/cpio/cpio.c index b267e9b..4b69893 100644 --- a/cpio/cpio.c +++ b/cpio/cpio.c @@ -295,6 +295,7 @@ main(int argc, char *argv[]) "Cannot use both -p and -%c", cpio->mode); cpio->mode = opt; cpio->extract_flags &= ~ARCHIVE_EXTRACT_SECURE_NODOTDOT; + cpio->extract_flags &= ~ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS; break; case OPTION_PASSPHRASE: cpio->passphrase = cpio->argument; diff --git a/cpio/test/CMakeLists.txt b/cpio/test/CMakeLists.txt index f2c2754..e3063ee 100644 --- a/cpio/test/CMakeLists.txt +++ b/cpio/test/CMakeLists.txt @@ -25,6 +25,7 @@ IF(ENABLE_CPIO AND ENABLE_TEST) test_extract_cpio_xz test_format_newc.c test_gcpio_compat.c + test_missing_file.c test_option_0.c test_option_B_upper.c test_option_C_upper.c diff --git a/cpio/test/list.h b/cpio/test/list.h index a4521bb..9968c4d 100644 --- a/cpio/test/list.h +++ b/cpio/test/list.h @@ -13,6 +13,7 @@ DEFINE_TEST(test_extract_cpio_xz) DEFINE_TEST(test_extract_cpio_Z) DEFINE_TEST(test_format_newc) DEFINE_TEST(test_gcpio_compat) +DEFINE_TEST(test_missing_file) DEFINE_TEST(test_option_0) DEFINE_TEST(test_option_a) DEFINE_TEST(test_option_b64encode) diff --git a/cpio/test/main.c b/cpio/test/main.c index fa22adf..1c9ae6e 100644 --- a/cpio/test/main.c +++ b/cpio/test/main.c @@ -2535,18 +2535,36 @@ usage(const char *program) static char * get_refdir(const char *d) { - char tried[512] = { '\0' }; - char buff[128]; - char *pwd, *p; + size_t tried_size, buff_size; + char *buff, *tried, *pwd = NULL, *p = NULL; + +#ifdef PATH_MAX + buff_size = PATH_MAX; +#else + buff_size = 8192; +#endif + buff = calloc(buff_size, 1); + if (buff == NULL) { + fprintf(stderr, "Unable to allocate memory\n"); + exit(1); + } + + /* Allocate a buffer to hold the various directories we checked. */ + tried_size = buff_size * 2; + tried = calloc(tried_size, 1); + if (tried == NULL) { + fprintf(stderr, "Unable to allocate memory\n"); + exit(1); + } /* If a dir was specified, try that */ if (d != NULL) { pwd = NULL; - snprintf(buff, sizeof(buff), "%s", d); + snprintf(buff, buff_size, "%s", d); p = slurpfile(NULL, "%s/%s", buff, KNOWNREF); if (p != NULL) goto success; - strncat(tried, buff, sizeof(tried) - strlen(tried) - 1); - strncat(tried, "\n", sizeof(tried) - strlen(tried) - 1); + strncat(tried, buff, tried_size - strlen(tried) - 1); + strncat(tried, "\n", tried_size - strlen(tried) - 1); goto failure; } @@ -2560,48 +2578,48 @@ get_refdir(const char *d) pwd[strlen(pwd) - 1] = '\0'; /* Look for a known file. */ - snprintf(buff, sizeof(buff), "%s", pwd); + snprintf(buff, buff_size, "%s", pwd); p = slurpfile(NULL, "%s/%s", buff, KNOWNREF); if (p != NULL) goto success; - strncat(tried, buff, sizeof(tried) - strlen(tried) - 1); - strncat(tried, "\n", sizeof(tried) - strlen(tried) - 1); + strncat(tried, buff, tried_size - strlen(tried) - 1); + strncat(tried, "\n", tried_size - strlen(tried) - 1); - snprintf(buff, sizeof(buff), "%s/test", pwd); + snprintf(buff, buff_size, "%s/test", pwd); p = slurpfile(NULL, "%s/%s", buff, KNOWNREF); if (p != NULL) goto success; - strncat(tried, buff, sizeof(tried) - strlen(tried) - 1); - strncat(tried, "\n", sizeof(tried) - strlen(tried) - 1); + strncat(tried, buff, tried_size - strlen(tried) - 1); + strncat(tried, "\n", tried_size - strlen(tried) - 1); #if defined(LIBRARY) - snprintf(buff, sizeof(buff), "%s/%s/test", pwd, LIBRARY); + snprintf(buff, buff_size, "%s/%s/test", pwd, LIBRARY); #else - snprintf(buff, sizeof(buff), "%s/%s/test", pwd, PROGRAM); + snprintf(buff, buff_size, "%s/%s/test", pwd, PROGRAM); #endif p = slurpfile(NULL, "%s/%s", buff, KNOWNREF); if (p != NULL) goto success; - strncat(tried, buff, sizeof(tried) - strlen(tried) - 1); - strncat(tried, "\n", sizeof(tried) - strlen(tried) - 1); + strncat(tried, buff, tried_size - strlen(tried) - 1); + strncat(tried, "\n", tried_size - strlen(tried) - 1); #if defined(PROGRAM_ALIAS) - snprintf(buff, sizeof(buff), "%s/%s/test", pwd, PROGRAM_ALIAS); + snprintf(buff, buff_size, "%s/%s/test", pwd, PROGRAM_ALIAS); p = slurpfile(NULL, "%s/%s", buff, KNOWNREF); if (p != NULL) goto success; - strncat(tried, buff, sizeof(tried) - strlen(tried) - 1); - strncat(tried, "\n", sizeof(tried) - strlen(tried) - 1); + strncat(tried, buff, tried_size - strlen(tried) - 1); + strncat(tried, "\n", tried_size - strlen(tried) - 1); #endif if (memcmp(pwd, "/usr/obj", 8) == 0) { - snprintf(buff, sizeof(buff), "%s", pwd + 8); + snprintf(buff, buff_size, "%s", pwd + 8); p = slurpfile(NULL, "%s/%s", buff, KNOWNREF); if (p != NULL) goto success; - strncat(tried, buff, sizeof(tried) - strlen(tried) - 1); - strncat(tried, "\n", sizeof(tried) - strlen(tried) - 1); + strncat(tried, buff, tried_size - strlen(tried) - 1); + strncat(tried, "\n", tried_size - strlen(tried) - 1); - snprintf(buff, sizeof(buff), "%s/test", pwd + 8); + snprintf(buff, buff_size, "%s/test", pwd + 8); p = slurpfile(NULL, "%s/%s", buff, KNOWNREF); if (p != NULL) goto success; - strncat(tried, buff, sizeof(tried) - strlen(tried) - 1); - strncat(tried, "\n", sizeof(tried) - strlen(tried) - 1); + strncat(tried, buff, tried_size - strlen(tried) - 1); + strncat(tried, "\n", tried_size - strlen(tried) - 1); } failure: @@ -2616,7 +2634,12 @@ failure: success: free(p); free(pwd); - return strdup(buff); + free(tried); + + /* Copy result into a fresh buffer to reduce memory usage. */ + p = strdup(buff); + free(buff); + return p; } int diff --git a/cpio/test/test_missing_file.c b/cpio/test/test_missing_file.c new file mode 100644 index 0000000..a908f53 --- /dev/null +++ b/cpio/test/test_missing_file.c @@ -0,0 +1,52 @@ +/*- + * Copyright (c) 2016 Tim Kientzle + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include "test.h" +__FBSDID("$FreeBSD$"); + +DEFINE_TEST(test_missing_file) +{ + int r; + + assertMakeFile("file1", 0644, "file1"); + assertMakeFile("file2", 0644, "file2"); + + assertMakeFile("filelist1", 0644, "file1\nfile2\n"); + r = systemf("%s -o stdout1 2>stderr1", testprog); + assertEqualInt(r, 0); + assertTextFileContents("1 block\n", "stderr1"); + + assertMakeFile("filelist2", 0644, "file1\nfile2\nfile3\n"); + r = systemf("%s -o stdout2 2>stderr2", testprog); + assert(r != 0); + + assertMakeFile("filelist3", 0644, ""); + r = systemf("%s -o stdout3 2>stderr3", testprog); + assertEqualInt(r, 0); + assertTextFileContents("1 block\n", "stderr3"); + + assertMakeFile("filelist4", 0644, "file3\n"); + r = systemf("%s -o stdout4 2>stderr4", testprog); + assert(r != 0); +} diff --git a/doc/html/archive_entry.3.html b/doc/html/archive_entry.3.html index dc95683..2c1de49 100644 --- a/doc/html/archive_entry.3.html +++ b/doc/html/archive_entry.3.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/archive_entry_acl.3.html b/doc/html/archive_entry_acl.3.html index a87d7df..f4068d3 100644 --- a/doc/html/archive_entry_acl.3.html +++ b/doc/html/archive_entry_acl.3.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/archive_entry_linkify.3.html b/doc/html/archive_entry_linkify.3.html index 3ae9154..2e7af8b 100644 --- a/doc/html/archive_entry_linkify.3.html +++ b/doc/html/archive_entry_linkify.3.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/archive_entry_paths.3.html b/doc/html/archive_entry_paths.3.html index e00bde4..4e7d559 100644 --- a/doc/html/archive_entry_paths.3.html +++ b/doc/html/archive_entry_paths.3.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/archive_entry_perms.3.html b/doc/html/archive_entry_perms.3.html index fb98580..a20c6c8 100644 --- a/doc/html/archive_entry_perms.3.html +++ b/doc/html/archive_entry_perms.3.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/archive_entry_stat.3.html b/doc/html/archive_entry_stat.3.html index c13b748..be32b92 100644 --- a/doc/html/archive_entry_stat.3.html +++ b/doc/html/archive_entry_stat.3.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/archive_entry_time.3.html b/doc/html/archive_entry_time.3.html index 4d9ba36..a385f50 100644 --- a/doc/html/archive_entry_time.3.html +++ b/doc/html/archive_entry_time.3.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/archive_read.3.html b/doc/html/archive_read.3.html index d5493dd..2f1a80e 100644 --- a/doc/html/archive_read.3.html +++ b/doc/html/archive_read.3.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/archive_read_add_passphrase.3.html b/doc/html/archive_read_add_passphrase.3.html index 3a4c4f8..7d32eea 100644 --- a/doc/html/archive_read_add_passphrase.3.html +++ b/doc/html/archive_read_add_passphrase.3.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/archive_read_data.3.html b/doc/html/archive_read_data.3.html index 5096244..4ca22ad 100644 --- a/doc/html/archive_read_data.3.html +++ b/doc/html/archive_read_data.3.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/archive_read_disk.3.html b/doc/html/archive_read_disk.3.html index d132218..c2a782a 100644 --- a/doc/html/archive_read_disk.3.html +++ b/doc/html/archive_read_disk.3.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/archive_read_extract.3.html b/doc/html/archive_read_extract.3.html index 4a8298c..5928645 100644 --- a/doc/html/archive_read_extract.3.html +++ b/doc/html/archive_read_extract.3.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/archive_read_filter.3.html b/doc/html/archive_read_filter.3.html index d65dfae..2e14347 100644 --- a/doc/html/archive_read_filter.3.html +++ b/doc/html/archive_read_filter.3.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/archive_read_format.3.html b/doc/html/archive_read_format.3.html index d50257e..548eed9 100644 --- a/doc/html/archive_read_format.3.html +++ b/doc/html/archive_read_format.3.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/archive_read_free.3.html b/doc/html/archive_read_free.3.html index 87a3ad5..49a21ef 100644 --- a/doc/html/archive_read_free.3.html +++ b/doc/html/archive_read_free.3.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/archive_read_header.3.html b/doc/html/archive_read_header.3.html index b7a56a2..7c16ef9 100644 --- a/doc/html/archive_read_header.3.html +++ b/doc/html/archive_read_header.3.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/archive_read_new.3.html b/doc/html/archive_read_new.3.html index 578bac4..d415322 100644 --- a/doc/html/archive_read_new.3.html +++ b/doc/html/archive_read_new.3.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/archive_read_open.3.html b/doc/html/archive_read_open.3.html index 48b7c11..41097e8 100644 --- a/doc/html/archive_read_open.3.html +++ b/doc/html/archive_read_open.3.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/archive_read_set_options.3.html b/doc/html/archive_read_set_options.3.html index 3aec20d..8e7f182 100644 --- a/doc/html/archive_read_set_options.3.html +++ b/doc/html/archive_read_set_options.3.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/archive_util.3.html b/doc/html/archive_util.3.html index 3fad932..ab0c3f0 100644 --- a/doc/html/archive_util.3.html +++ b/doc/html/archive_util.3.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/archive_write.3.html b/doc/html/archive_write.3.html index fa4c392..44c8e42 100644 --- a/doc/html/archive_write.3.html +++ b/doc/html/archive_write.3.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/archive_write_blocksize.3.html b/doc/html/archive_write_blocksize.3.html index 211ff53..2ddd3a5 100644 --- a/doc/html/archive_write_blocksize.3.html +++ b/doc/html/archive_write_blocksize.3.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/archive_write_data.3.html b/doc/html/archive_write_data.3.html index 8be96f5..a4542eb 100644 --- a/doc/html/archive_write_data.3.html +++ b/doc/html/archive_write_data.3.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/archive_write_disk.3.html b/doc/html/archive_write_disk.3.html index ec97740..0e976b4 100644 --- a/doc/html/archive_write_disk.3.html +++ b/doc/html/archive_write_disk.3.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/archive_write_filter.3.html b/doc/html/archive_write_filter.3.html index c569172..c66133a 100644 --- a/doc/html/archive_write_filter.3.html +++ b/doc/html/archive_write_filter.3.html @@ -1,5 +1,5 @@ - + @@ -40,7 +40,8 @@ ARCHIVE_WRITE_FILTER(3)

archive_write_add_filter_none, archive_write_add_filter_program, archive_write_add_filter_uuencode, -archive_write_add_filter_xz

+archive_write_add_filter_xz — functions +enabling output filters

LIBRARY

diff --git a/doc/html/archive_write_finish_entry.3.html b/doc/html/archive_write_finish_entry.3.html index 9e3f45c..bf63015 100644 --- a/doc/html/archive_write_finish_entry.3.html +++ b/doc/html/archive_write_finish_entry.3.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/archive_write_format.3.html b/doc/html/archive_write_format.3.html index fadedbb..09d6147 100644 --- a/doc/html/archive_write_format.3.html +++ b/doc/html/archive_write_format.3.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/archive_write_free.3.html b/doc/html/archive_write_free.3.html index de12d63..b65a085 100644 --- a/doc/html/archive_write_free.3.html +++ b/doc/html/archive_write_free.3.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/archive_write_header.3.html b/doc/html/archive_write_header.3.html index 7adfbed..404075a 100644 --- a/doc/html/archive_write_header.3.html +++ b/doc/html/archive_write_header.3.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/archive_write_new.3.html b/doc/html/archive_write_new.3.html index 9ec2d6f..1cd3e06 100644 --- a/doc/html/archive_write_new.3.html +++ b/doc/html/archive_write_new.3.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/archive_write_open.3.html b/doc/html/archive_write_open.3.html index 53b9869..5c69284 100644 --- a/doc/html/archive_write_open.3.html +++ b/doc/html/archive_write_open.3.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/archive_write_set_options.3.html b/doc/html/archive_write_set_options.3.html index 9b8e784..50e1731 100644 --- a/doc/html/archive_write_set_options.3.html +++ b/doc/html/archive_write_set_options.3.html @@ -1,5 +1,5 @@ - + @@ -30,7 +30,7 @@ ARCHIVE_WRITE_OPTIONS(3)

archive_write_set_format_option, archive_write_set_option, archive_write_set_options — functions -controlling options for reading archives

+controlling options for writing archives

LIBRARY

diff --git a/doc/html/archive_write_set_passphrase.3.html b/doc/html/archive_write_set_passphrase.3.html index fcb4495..94e90b3 100644 --- a/doc/html/archive_write_set_passphrase.3.html +++ b/doc/html/archive_write_set_passphrase.3.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/bsdcpio.1.html b/doc/html/bsdcpio.1.html index eaa8d52..31c9378 100644 --- a/doc/html/bsdcpio.1.html +++ b/doc/html/bsdcpio.1.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/bsdtar.1.html b/doc/html/bsdtar.1.html index 012a5e3..92e798a 100644 --- a/doc/html/bsdtar.1.html +++ b/doc/html/bsdtar.1.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/cpio.5.html b/doc/html/cpio.5.html index b7eebbe..a532116 100644 --- a/doc/html/cpio.5.html +++ b/doc/html/cpio.5.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/libarchive-formats.5.html b/doc/html/libarchive-formats.5.html index 2db8476..2298d6b 100644 --- a/doc/html/libarchive-formats.5.html +++ b/doc/html/libarchive-formats.5.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/libarchive.3.html b/doc/html/libarchive.3.html index e66806b..a128625 100644 --- a/doc/html/libarchive.3.html +++ b/doc/html/libarchive.3.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/libarchive_changes.3.html b/doc/html/libarchive_changes.3.html index 16b3c80..76b6232 100644 --- a/doc/html/libarchive_changes.3.html +++ b/doc/html/libarchive_changes.3.html @@ -1,5 +1,5 @@ - + @@ -25,8 +25,8 @@ LIBARCHIVE_CHANGES(3)

NAME

-

changes in libarchive -interface

+

— changes in libarchive +interface

CHANGES IN LIBARCHIVE 3

diff --git a/doc/html/libarchive_internals.3.html b/doc/html/libarchive_internals.3.html index 8230dfa..4b9aa52 100644 --- a/doc/html/libarchive_internals.3.html +++ b/doc/html/libarchive_internals.3.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/mtree.5.html b/doc/html/mtree.5.html index 90981b9..5f37ee9 100644 --- a/doc/html/mtree.5.html +++ b/doc/html/mtree.5.html @@ -1,5 +1,5 @@ - + diff --git a/doc/html/tar.5.html b/doc/html/tar.5.html index afb8c06..c30306d 100644 --- a/doc/html/tar.5.html +++ b/doc/html/tar.5.html @@ -1,5 +1,5 @@ - + diff --git a/doc/man/archive_write_filter.3 b/doc/man/archive_write_filter.3 index 98ab4b1..3542960 100644 --- a/doc/man/archive_write_filter.3 +++ b/doc/man/archive_write_filter.3 @@ -16,6 +16,7 @@ \fB\%archive_write_add_filter_program\fP, \fB\%archive_write_add_filter_uuencode\fP, \fB\%archive_write_add_filter_xz\fP +\- functions enabling output filters .SH LIBRARY .ad l Streaming Archive Library (libarchive, -larchive) diff --git a/doc/man/archive_write_set_options.3 b/doc/man/archive_write_set_options.3 index d3aa42e..43b41a7 100644 --- a/doc/man/archive_write_set_options.3 +++ b/doc/man/archive_write_set_options.3 @@ -5,7 +5,7 @@ \fB\%archive_write_set_format_option\fP, \fB\%archive_write_set_option\fP, \fB\%archive_write_set_options\fP -\- functions controlling options for reading archives +\- functions controlling options for writing archives .SH LIBRARY .ad l Streaming Archive Library (libarchive, -larchive) diff --git a/doc/man/libarchive-formats.5 b/doc/man/libarchive-formats.5 index ca3e336..9c8e843 100644 --- a/doc/man/libarchive-formats.5 +++ b/doc/man/libarchive-formats.5 @@ -39,7 +39,6 @@ Later variants have extended this by either appropriating undefined areas of the header record, extending the header to multiple records, or by storing special entries that modify the interpretation of subsequent entries. -.PP .RS 5 .TP \fBgnutar\fP diff --git a/doc/man/libarchive_changes.3 b/doc/man/libarchive_changes.3 index f35e367..e3ecb31 100644 --- a/doc/man/libarchive_changes.3 +++ b/doc/man/libarchive_changes.3 @@ -1,7 +1,7 @@ .TH LIBARCHIVE_CHANGES 3 "December 23, 2011" "" .SH NAME .ad l -\fB\%changes\fP in libarchive interface +\- changes in libarchive interface .SH CHANGES IN LIBARCHIVE 3 .ad l This page describes user-visible changes in libarchive3, and lists diff --git a/doc/pdf/archive_entry.3.pdf b/doc/pdf/archive_entry.3.pdf index 583d8a03e82ba10a2c45255cd8dd17685fdb2d89..a347a717aeee256f35be32feec60d95df3ea1fb2 100644 GIT binary patch delta 266 zcmdmLvDIS3I}zSwOXDQtR5J@*v(&`Y$rDB8CrgQDVTeZXn&}!^h8S8}nHpP}T2B5Z zs)r_GDAtUo>!4U1n#e>^iODYFDj1^jo2Q8HWYjh@v^2CdH8!=>H858>}>4p!4U1n#e>^iODYFDj1^jo2Q8HWYjh>vNSR>FflaMH858HM9&dw6rocwlcMx zyhut9P2{drGZvja()Jjl5|ckjtDuT*R+PEHsBLCwX=rI`Y-*`%V6JXppsvZK@0*|E zl30?e;bLWEU}$ClSFu?|E`cf5&B@W&)X~hs+}Oz2+1T01)zHww%+T1?*wnz($jIE% i&W50hSS~v|uHur!qLPZD)HE)0b2AezRaIAiH!c9;Mok+4 delta 293 zcmaFp_|S2~EJ7j`vh&7|>`XCmECUQVjVsf##3Wlis=ELGU8MVy}Ee$PAjZH0e4b0UI4AeEb^nLSF zToOxCHC(KW3=GW-;3_sRm)yYQ>}>4p~VcLyU~93{0#H%_ggg z>7j`vh&7|>`XCmECUQVjVsf##3Wlis=ELGU8MRG}ERBo|On`1NFjqG)P}k(r_svgn zNi0d#aIrEnFf=oOtJu6;as!i-tC^dbk)ffpshOpziJ_s1o4K2-g|mU1lcSrXxsj2% Noed!slV{3E0|1_;MacjF diff --git a/doc/pdf/archive_entry_perms.3.pdf b/doc/pdf/archive_entry_perms.3.pdf index b0996ddff3fd0a781917f31c8857db7f2172c391..2b10ae2d0d5834b8364992cc77bbd506716acc36 100644 GIT binary patch delta 282 zcmccScFk?Wereuh%M{}jlT-^`v(&`Y$$w=fCdbLKPkt?(g+r!M#*)`e*U&P=(9+7( z#LB>6@^KkGG!Z7*W*oXV%GzVd*kFiAY>tyVz^H9zXlZC^YGPoZYhbQ!V4$warSF@c z;*waBs^MZ~WMF7!09UcuQ(*&>lZ%<5tA(qxrKyp#k(;xNi@Bw%g|U&Fk&~;Dv!j!l NiJc806_c%%r2%p(PwD^w delta 282 zcmccScFk?Wera9{OLLQy6hkvz6SKsW$$w=fCdbLKPkt?(g+r!M#*)`W*T^!&$jHjT z#LCcY@^KkGG!Z7*W*oXV%GzVd*kFiAY>tyVz^H9vWNBn%U;=cTfw{VYfx0G_zHfet zOJYf?hKrSvfuWfJT*YQjg$+zjhGwSDW~Rnw=4PhmmTs=jW`;&aZpOw2j;>B_CYC0~ Nb~c1mOtw~*1^^phOfdie diff --git a/doc/pdf/archive_entry_stat.3.pdf b/doc/pdf/archive_entry_stat.3.pdf index 9950064badb78584073b3a30c25dab1d0f048b5b..631891141d557a8fe4fb9c4f26b8c9411a66d27e 100644 GIT binary patch delta 250 zcmZ4Gzsi3@yF72QWr}f%NvegeS!!bHWIiSN$(!Y~u!wppSn`_b8d`=JT3VT!SQ!{h z?pM%56FH^Oj74XqqCJMF#N@k*DyX8H`IK%ja+(=h8d{o~0F8gIEQ#Q47F4lec5*Q@ qbhU7GwlpPNqf%#wJFl7G|zymUcFT KR7|cEmj(bNib>c2 delta 278 zcmbQDKSh5-q5!XjrMXE;ilLdViCJRGHFrV zxFnXOYPeV#85o)wz*TJisd9wL$;`mi#MsEd(bB}y%*fc%*uu@l)WpQd+0511+}zZ_ N#LkA0ipl@gr2$exOmqMM delta 282 zcmbOgFe_j~z5=g>rMXE;ilLdViCJRGWMpMv zVr6JHxm-~XO=Oc|GY;K}O7<8sHW(rjoB5OvFlw6^SsED`m;l{oV6JXppsvZK@0*|E zl30?e;bLWEU}$ClSF!o0$`K|fS2H&=BSS-HQ!`6b6GKB2H*+^v3ugm2Cr39&b0Z^j NI~zhOCjVEL1^_yLN=pC$ diff --git a/doc/pdf/archive_read_add_passphrase.3.pdf b/doc/pdf/archive_read_add_passphrase.3.pdf index bc70d4a3afe0ca08adb810f74e919fe38e012857..7015dc0daad140b5259d1df9d1939000b2c89983 100644 GIT binary patch delta 266 zcmaE*^h#;NY%bnp%M{}jlT-^`v(&`Y$#&fGlaF&{VTeZXn&}!^h8S8}nVMJ`7))Nw zt%oLZkGmO7R~}Csnur~@#N>}WDj1^jn;m&~GHRO{S{hoKniv@98knma7^rJ<>HFrV zxFnXOYPeV#85o)wz*THk<$uBGWNc#S=IrWd>0)f`{Z4UL>kjSP%Uj7%-eT+J-) MYzV2C>@O${0EkgXApigX delta 266 zcmaE*^h#;NY%X34OLLQy6hkvz6SKsW$#&fGlaF&{VTeZXn&=u?h8P)H8JJiZnoVBJ zt%oLZkGmO7R~}Csnur~@#N>}WDj1^jn;m&~GHRO`SsED`m;l{kV6JXppsvZK@0*|E zl30?e;bLWEU}$ClSFu@@{{^FytC^dbk)ffpshOpziJ_s1o4K2-g|mU1lcSrXxsj2% Moed!sll=vy0bqVaQ~&?~ diff --git a/doc/pdf/archive_read_data.3.pdf b/doc/pdf/archive_read_data.3.pdf index f512940cedc2f997d18a0f05a057501a850ebc4c..8c4343c75f2bb47815b25921981e603c4528ec00 100644 GIT binary patch delta 289 zcmZoLZ7|*7E6kg0nPQw`l4_xAmYSG4`Gc_h2n7mk21w&MR^JmeWjM`>~mWGz5CI$w&2IlGp2I`tz`o8%o zE{P?n8ZK5w28Lz^a21=ci~BIeni-gy7#kTlTAEmz85vs|Te!KHnwS_lo4Goho0}S# j*x3+N5zA#~$5mXCSX5F`l$yq6W@u{2rK;-c@5TiH!CFon delta 289 zcmZoLZ7|*7E6i(QX>O8|VrZsoVwRXP`Gc_h2n7mk21w&MR^JmeWjM^qfmPSSfCP23sn5!EYsB3cR`{t*( zB$lLVxL6q(7@8TtRcyX4?!y#oXlCkcW@>C^Zf0t3>E`NeW@u#OW^8QW=<4KVVrgP* iXG2g$ESH@fS8+*VQAtHnY8scBp{XI4s;aBM8y5g`l1rZe diff --git a/doc/pdf/archive_read_disk.3.pdf b/doc/pdf/archive_read_disk.3.pdf index d0ea41349da4f3548f78d1b022923cee24c2f8ed..d70ee334f4db9caf0264a9f4e8183171c266acb8 100644 GIT binary patch delta 266 zcmcZ`cQuR3qCWr}f%NvegeS!!bHHFrV zxFnXOYPeV#85o)wz*TI%uC2lBzb NVrN50#bif)835FkOBetE delta 266 zcmcZ`cQuR5=VrMXE;ilLdViCJRG~VcLyU~93{0#H%_fIx z=%I;B&}c@}rJxyyCh|dDV)9~56%0}N&7U=QGHRO`SsED`m;l{kV6JXppsvZK@0*|E zl30?e;bLWEU}$ClSF!oJwg$74tC^dbk)ffpshOpziJ_s1o4K2-g|mU1lcSrXxsj2% Moed!slO6SC0GcdEvj6}9 diff --git a/doc/pdf/archive_read_extract.3.pdf b/doc/pdf/archive_read_extract.3.pdf index e3536e26674a090f205539e1b0b77dc60b47964a..2e81c8bbc5788df6e9c0274c8c794d0b22bb7fdc 100644 GIT binary patch delta 266 zcmdmCw!>`0U18qjM6+bGBr^+Lv(&`Y$qgd%lQ~7QFhnDG&2$YdLkumgOiio|3@1Mo z(L)na5N$@&wLvrvO{76YVzRNA3Wlis=4P>-jM`>~mWGz5CI*JO2IlGp2I`tz`o8%o zE{P?n8ZK5w28Lz^a21==B}$l_OpQzo3=B=2jh)?G+$}&|Bm@F$T4FEx^Mpys< delta 266 zcmdmCw!>`0U144eOLLQy6hkvz6SKsW$qgd%lQ~7QFhnDGO>~VcLyU~93{0#H%_ct; z(L)na5N$@&wLvrvO{76YVzRNA3Wlis=4P>-jM^qfmPSSfCP23sn5!EYsB3cR`{t*( zB$lLVxL6q(7@8TtRcua|C}DDPHFGmFGBk8HHM2A|F*G!BGk0^fa5ivra&&VvH!?D} MvmvBnvaGZ;06Yam1ONa4 diff --git a/doc/pdf/archive_read_filter.3.pdf b/doc/pdf/archive_read_filter.3.pdf index e6830609d950a4167e0a6dfc2b31af1e315cae1b..cfa15303be48ff1f9d0f5ec800fc161c7af2dbcc 100644 GIT binary patch delta 289 zcmZ2rxWI5jt{`u6qFJ(8l9`3BS!!bHWC0=h$ukABFhnDG&2$YdLkumgOiio|3@4Wg z>7j{i5Nbx#~mWGz5CI*JO2IlGp2I`tz`o8%o zE{P?n8ZK5w28Lz^a21=si~2Cdni`s08XB3ISh~5n8ksv~VcLyU~93{0#H%_o-% z>7j{i5Nbx#W7dIT>4;Tew&ln>ksynwUBn j+u0CQ5zA#~$5mXCSX5F`l$yq6YG!W8rK;-c@5TiH0ij5P diff --git a/doc/pdf/archive_read_format.3.pdf b/doc/pdf/archive_read_format.3.pdf index d4b118f541d7f40527b336d04429ab50e9a10a78..0c9e14803f0b6ae26e9bf2d0820b048397dc50b3 100644 GIT binary patch delta 249 zcmdmEx5sY7QgPnoM6+bGBr^+Lv(&`Y$vRT1ZX_3j3k1$Szl%&lcTw* pg`26XrKP2*xv7(rxr?QniKU~fqmi+tiIJO;p`8sO6_XX^r2+KMLk|D| delta 249 zcmdmEx5sY7QgL33M1vG_V@oq#6SKsW$vRT zFq|yKr-vpI%GZoV=U+ZI3{e{l5wP8xcku6I)HXA;G_*7|F)-9MFjqG)P}k(r_svgn zNi0d#aIrEnFf=oOtJpk8@C9S6siC>0p^=%1rJI|pk-4LVlZlg~iJ5_^fs=)Sxr>vL ioee=1v0Qd`T*W1cMI{wQscBp$rlw|Gs;aL3Zd?G1%1~zj delta 301 zcmaE;{!o2`5HGJqqCtwev89==iCJRG(&%+=Aw!qL*i+1%09(#*}p(!kD!kc!E_gror+MnbCq diff --git a/doc/pdf/archive_read_new.3.pdf b/doc/pdf/archive_read_new.3.pdf index 749e5b40997cb06e8887c0ea2297e0e003785cc3..d94331d184bc982f7ed7e830d2204c9eec1e55a8 100644 GIT binary patch delta 301 zcmcbpa8Y4H6DMzSqFJ(8l9`3BS!!bHx8DeN@Wolw& zU^uypOAk%tC|5HUow?j@7@{^9B4E2WYw+x3)HXA;G_*7|F)-9MFjqG)P}k(r_svgn zNi0d#aIrEnFf=oOtJuuL_kuCj)X2oZz|h3m*xAj+&BD>b+`!Sq%-GP()Wprqz}3{u i&W50hSS~v|uHur!qLPZD)HE(*GZPaoRaIAiH!c7+a8PCd delta 301 zcmcbpa8Y4H6DO}lqCtwev89==iCJRGE@^)E0G?7oT%{X)~l(WZ>vB40L*z6~NfKl7b(9+P-)WpC@*T7uez(8G-OW!v? z#U-&MRl~)~$iUFd0Ip)QrQ!xACu0j2CsT80M-yi^HzzkUa|1^p-@wGx(8vB40L*z6~NfKl7T$kNEjz{Jp8*T7uez(8G-OW!v? z#U-&MRl~)~$iUFd0Ip)QrQ!xACvyXHS0@uQH&+8!H)j(wS4S5MM@tiDb4OQ8GdCAY O13Mc+Dkf{INCN;G-AwQR diff --git a/doc/pdf/archive_read_set_options.3.pdf b/doc/pdf/archive_read_set_options.3.pdf index a28e5371efd04e8498863b822d8f41971a4b50b3..f1da66aa7e5fb68498559edba49bae101c5f73b1 100644 GIT binary patch delta 250 zcmexv_1$WNix_Wml7Xp#VXB3$S!!bHP#rY2SfMw5NS z_0UAx#hbC{G?TE$5S5rbOF{)hRDSa-iJgp`W`>rAmZl~^E7nL!B6yq6N%=528C$qG onVLI0nmD_;Ik}mc8#n^_1}3hCPDZ9CrjAB-HiT46j**oH0NCV0MF0Q* delta 250 zcmexv_1$WNix{s(qCtwev89==iCJRGWcxf-~-Ih&ZdI=WamTADbUJGxq$xw%*x*x3+LF*!z78UVQKKP#rY2SfMw4S? z_0UA7%Qj=t=_Y57Au2I>m7EHOsQl(%ayuD0%?vFKElo{;R_sxbMDRA>Q`o@dWMpn` pY~o~LVqs=vY;5l2>SSim7EHOsQl(%ayuD0O^hs!j0{YGR_sxbMDRA>Q`o@dg-}-VQ%Q;~54b0UI4AeEb^nLSF zToOxCHC(KW3=GW-;3_tsRI_1@HMVeZGBtO0G;wxwb8<5?H*f^<4NP1Oos3LPOdXBv iYzV4|<+8KmDlSPZDyb++P2;k(G&ko`Rdw}u;{pI4b5ha( delta 305 zcmaD9@+f43y%MiQqCtwev89==iCJRGx8DeN@Wolw& zU^KZ~NDocqm{2nooq57;7@{^9B4E2WYl`e-Skv{NX6vY64C$yltowo delta 258 zcmdmHxXo}wvmmcUVxpNrqM@0tiCJRGFDHa>S$*}NX6vY64C%$r9_ed diff --git a/doc/pdf/archive_write_data.3.pdf b/doc/pdf/archive_write_data.3.pdf index 02d4ab865f558210cc8c87701a460911908f2821..df28a1259acfad280fbca3ed45089ed67f991f93 100644 GIT binary patch delta 265 zcmeyP{6~3%E;ny-l7Xp#VXB3$S!!bH~54b0UI4AeEb^nLSF zToOxCHC(KW3=GW-;3_t6=YPTIWMpn`Y~o~LVqs=vY;5l2>SSi~VcLyU~93{0#HEhd}t z=%I-e@HC_9n#3E2DgZQGVsbOD3Wlis=F7Z08MRG}ERBo|Objh_4b0UI4AeEb^nLSF zToOxCHC(KW3=GW-;3_t6=YPTI#;GlN7!GhGw2#FWYJtt2J~ShG*QYmtRRrr6Sw*F@LIGQ`Np z%D}|R&|>mVOFcA^FP64p{1jf Pv#Fz<4IveiIUQvHE6`6T diff --git a/doc/pdf/archive_write_filter.3.pdf b/doc/pdf/archive_write_filter.3.pdf index 5dba3c8b12829e9be48d4a1777d93570d4fe69bc..cfd8847522e0bffc6f931b79b0f42e48e53e838b 100644 GIT binary patch delta 1724 zcmeCy-KjglqyBc@EeCgcu`qSckyR{0`n3(zsR3DTGrPNR3 z@8d~Z@R9Mc(~PwT9aJ5rswDhqy78v&&z*l4rT)Cx)_d*2j=L-CrT0s69lkzerJ;}% zN7j^^_c#_^eATqi<9BJ^VkM8KGdUk^e*P%%z3_`2hfnn69V`@z*eJ~=T#&@p`SPlC z$YGJ7+@o##d-RzCQ#?{${?ol_!Ps_`<>kx;Z7!)RvV<}`q~bN_ne9}36c*9c@@gj6 z$0bMA`F2Y@-Iu^E>f*pW`AYqPo;BXzZ^_+p$;;tCb1|dfVbw-i-nOn3_ArZ0=?pvd zIZxf_Vi!$Wb@+_o_lA3XOqbU?B+b3UIP=vM^9NR?$CogzT4?Q%T59XB{pI*X+nFJq zS=K_OO2x{GRK=GL^mT6Ym_DeJ^Cy0nOc3m#Q1yoz?jDZ1L|xsd_uD z;|e^h%+u5R9&3~+UB3Ut$?H?qEYD3^`ETmV|M~oMI^=UX#=_n^=-|uuM{Rgd>C9Bx zGhyXXCG*>jmS651U`!P1pDgj`@sFFa`awDebuI^AP!Mvr5VwB2IB#=wdW_(-(vLc4 z?-xsnh;mgGrp&fGo?oOJ$#q;a-?g#AkNZ;nlp9-lt%@IMT@jB=pSo1P>fMEyW6nK% zrw*6q>hJJqce%XvQG-dBtjRL&g*Gzxj5HECBCdNc$dD`wn=2OUrZMHpoz$fFZ@#?V z9=AJut#Gmb-a_Wn-fm_U^Ic`*>Q1aFoLJd#F)@zgQPtXz;~rM~9DlA_yC$x7<0e7f z%2Xlu&U(>i9y?>znJee1AKw1dSWmpKGMq6#z~$2Amh`W)PHR@D#ulz#d*;~rHBBpS zZPV)Nii(~oGB3JgU5<82*rD&XGUq07d~MBR3*5d>^4@9=*7tp0Qd6ey5;=8k`k`vk zL*kh#8rgnxLyQGB!4vTqdGcZ)%DmWp05XW^7_= zfv(Qj*wPqN%m`Dj5vKLV1{OwOz4b_LH?lASrUz927+IKNikVnKG$ZLXur$ZwM?*t& z^NbA)Es@0{K-L*q8e#a($P$Z>4b3nD*BBT#$OeMUGd43YpZrPGCf3B*(aGG&+|bFw z+1bU-)YQz`)z#d|(9pox#mv&s%*oD%po&;7J3Fr8lEk8tilWpsE>lAb6E0O%SARDy E0PePD%K!iX delta 1642 zcmdm~+pRmnqdwdJwt>jsdGU#v@~`}^{Fu1h%vUS=qLt{jtryi?mTN6hOgY7TiN&q{ z@0&denT?k|1q9lMY+B!c-m>rg-jl2cIv8~7j_#NB*zL@_!B(!{1>_(FEVOutmtb;a-Jm^qZzu&-ETd**Uq)8`vA&(3oB%GiMf*X=l^ye=&InR?e1sY47wsON9CL$=W&Y{-+Fk>JL3T zdvnI)N|~J-Mb}g*ran!amAOkNKc}wz-`UTtp+YGVB`b8qWDh&m=iiXsW+|lB#n`{; zP1WYz9A`gnUc&3{`6i-KeAfc)ZQ7f30$rFwLtP})T>IR0q6=O&9Q5tFI-zhi%K@dI z{R`jEjp(kJQG96W;^{N>MN)&=7VTOXo_?c#W!VM6WQpm0Kf4!9Q5HD7qVbXIi9HQ> zKJ^5(rL6tJ+t2!H(BpjE_}N@n7u}ak8N(P)*{cTG7Xjw^jbW3hiaRe zNXIWcv}Kyu48xq9BU$UtOtRQ29B@E<;T8_lQ#D`r{gcp|YA7%D;7{Qqnfcu3y;n^L zE`Pf4*X8=CSqAYDtXIF3hK9JV-}>d=zAXaIvEd$ZsoVcr++h{GrG1xY)!JI)KjwuZ ziyBvE2E@M(T9F;k_21XVZ;|iqI>C$I=DS?$$=ltr>GxW3n_oRvAxlt>c4>0x&m!mnEW@Ktv^we;YYpG@WckCP4d>BpWvxa#KpZ?5wi_s3o_{!?tn%F8*& z{9MK7=BI~S#I<4rH-&S5EL=Hz*GrvXCrQ^MJO2LU6slwo@Oe@rr7S!BfeX)9pO@a8m1ZQ8UTT=S)yfP zl6kU;SyHn3Ad#3^(TaO5@7HL?sbGO{u-u`;xn+$W%iCUR1snK;7=1l@^Kcw11F zD21C`4ogG(kNn%k+MNw)R Qm#Lw#1(&L-tG^o;0JMloPXGV_ diff --git a/doc/pdf/archive_write_finish_entry.3.pdf b/doc/pdf/archive_write_finish_entry.3.pdf index d3323ca21b20302162f1d890031a2612bf52199c..b14ae319d62e137557f531ff8dbded19dbc7ae4b 100644 GIT binary patch delta 305 zcmaE$@<3(7L~h>XB+C>_3o{E{v(&`Y$>(_`CL8dvPu|O&g+nHo$CB4f*U&P=(9+7( z#LB>U@=P8*G?6Pj%{X*7^V(y`*kFiAY&PIKz^H9zXlZC^YGPolYhbQ!V4$warSF@c z;*waBs^MZ~WMF7!09UbDTHpm^tg)%Nfw_^ng^R0+n~{;5p^LervyqX3tBJ9Nv#F7# jv7HS;6|r1)c3j0JiA5z9MX70ACWhvQT&k+B{%%|Vi+xd- delta 305 zcmaE$@<3(7L~dS-#6&ZLL_;%O6SKsW$>(_`CL8dvPu|O&g+nHo$CB4X*T^!&$jHjT z#LCcO@=P8*G?6Pj%{X*7^V(y`*kFiAY&PIKz^H9vWNBn%U}9*YYhbQ!V4$warSF@c z;*waBs^MZ~WMF7!09UbDTHpm^teca$tC6ddn~AZjnVE&Dk*kG^tC5kLp|honxrL*P jnVk(m6|r1)c3j0JiA5z9MX70ACWhvQT&k+B{%%|VaqCd- diff --git a/doc/pdf/archive_write_format.3.pdf b/doc/pdf/archive_write_format.3.pdf index 130cd7e7cf18a4e1e9fc1edd329414edafa54629..541d41b907dc6a381de78635d4d26242a8b06456 100644 GIT binary patch delta 266 zcmbPgHPvcEohWZ|l4Xjeg_(t}S!!bHWJNLg$*V-OFhnDG&2$YdLkumgOiio|j3>8= z>7j`n6l+G)6(}BuCZZ@NG5LzP3WlisW)+E@jM`>~mWGz5CI-g32IlGp2I`tz`o8%o zE{P?n8ZK5w28Lz^a21<5q&6@)8Jn6Lm>Zc}xVW0Q85y}5x|lmU8yOk6niyL+n;Kaf N+u0COG5ME_Gyux{ML_@n delta 266 zcmbPgHPvcEohYwGVxpNrqM@0tiCJRGWJNLg$*V-OFhnDGO>~VcLyU~93{0#HEhe{# z>7j`n6l+G)6(}BuCZZ@NG5LzP3WlisW)+E@jM^qfmPSSfCWaQe2IlGp2I`tz`o8%o zE{P?n8ZK5w28Lz^a21<5q&6@)xjC7;8o4^TnHam8nOT?`xmvim8X376I$OG!TR6Iy N+1U_MG5ME_Gyur`M3?{o diff --git a/doc/pdf/archive_write_free.3.pdf b/doc/pdf/archive_write_free.3.pdf index eb4ac2e1009f48f1c82e8363badf08c4d35f7ccf..23ba1d2ae70a74fe1fdc2db33841be471567b571 100644 GIT binary patch delta 305 zcmaE__Fiqn0v_JvB+C>_3o{E{v(&`Y$@lmqCfoC~Pd>wwg+nHZ*OJ#v*U&P=(9+7( z#LB>U@(Nx(G?B-=%{X*V;#fKl7b(9+P-)WpD8*T7uez(8G-OW!v? z#U-&MRl~)~$iUFd0Ip)Qmf#D=syDq^|p?6`_c5{pVIic-_KOiWCSxKveL{oS|#jYCqp delta 305 zcmaE__Fiqn0v=wA#6&ZLL_;%O6SKsW$@lmqCfoC~Pd>wwg+nHZ*OJ#n*T^!&$jHjT z#LCcO@(Nx(G?B-=%{X*V;#fKl7T$kNEjz{Jo(*T7uez(8G-OW!v? z#U-&MRl~)~$iUFd0Ip)Qmf#D`vWDq^|p?6`_c5{pVIic-_KOiWCSxKveL{oS|#T@6vo diff --git a/doc/pdf/archive_write_header.3.pdf b/doc/pdf/archive_write_header.3.pdf index 58a27ed217714c3428843b2a5e37271389b16229..be135762c792826b40cff7b31b57f72ed8d92110 100644 GIT binary patch delta 289 zcmdn1yjOX{J1*YjB+C>_3o{E{v(&`Y$rHKdCrfc>VTeZXn&}!^h8S8}nVMJ`7*GDj zt%oLJ$kU9b>mW}Yn#e?MiODX!Dj1^jo2T&ZWYjh@v^2CdH8C*OH858%@me>W}w>m^NK delta 289 zcmdn1yjOX{J1$;}#6&ZLL_;%O6SKsW$rHKdCrfc>VTeZXn&=u?h8P)H8JJiZT1@`N zt%oLJ$kU9b>mW}Yn#e?MiODX!Dj1^jo2T&ZWYjh>vNSR>Ffp{yH858%@me>W}wotsPD diff --git a/doc/pdf/archive_write_new.3.pdf b/doc/pdf/archive_write_new.3.pdf index 9543afed74ab10b945ca73a2c89824da3369f55b..282b90049ad08e91905812898b2ea46f4fe536bd 100644 GIT binary patch delta 270 zcmdm~uv1|}7AJ3Vl4Xjeg_(t}S!!bHHM9&dw6rocu`)28 zT*Re^CbE{R8H>&sZhH(-iOC1JRZvAYf8@TwsBLCwX=rI`VqmOmV6JXppsvZK@0*|E zl30?e;bLWEU}$ClSF!mE?+ZpJV^ebjb0c#L7grNEBO^CM7js8vBO?P>6JrZ!QzJ`b NI~zhOCd&y(0{}p(Nq+zU delta 270 zcmdm~uv1|}7ALPoVxpNrqM@0tiCJRG&sZhH(-iOC1JRZvAYf8@TwsBL0oX=G$zVrZdjV6JXppsvZK@0*|E zl30?e;bLWEU}$ClSF!mE?+ZpJHz#vfBUdLk6Ju91GYeBAR|^+cBO^CMXG<4z3r80- NI~zhOCd&y(0{}j&NY(%V diff --git a/doc/pdf/archive_write_open.3.pdf b/doc/pdf/archive_write_open.3.pdf index 2f067e03a0d17124f1963e080548a75a03fa5010..7e95664b03f34a8c99e8b65d17b1ac0ebc82f1a4 100644 GIT binary patch delta 278 zcmeBl?{webB*UAWWSL@VVP>IgmYSG4xj{~1@?RPD$$2taSY;e|&2$YdLkumgOiio| zj3;}^>Y<6W$~I%ssVnD(A!>sm0=9ee3%Q+)+Gd89hL)x#2FAJu=IRCp>Y7~ozWFIG zi6yBTE>=bchGqtE6`Ri}BrrLd7&|(dJDD3gSvWhpxS5)oIlH==I~f`p7`vER8k#xT M*$`4OIZs&{0FO3H_y7O^ delta 278 zcmeBl?{webB*SZwWSp94U}>gnVwRXPxj{~1@?RPD$$2taSY;e|O>~VcLyU~93{0#H zEhl@)>Y<6W$~I%ssVnD(A!>sm0=9ee3%Q+)+9pPpMn(oEhL*Yp=IRCp>Y7~ozWFIG zi6yBTE>=bchGqtE6`Ri}BrrKSxtbfB8aNpl8Uq=I&ZbW0hOSO-ZYG8XZk8^l7LIl{ Lgj7tZ6$t_+X#JS$ss#vP2yV@2hK4GkFQ5^X9p7PCnl z5iHK(8#Z>l1J85BsEY34bl6^rxgj3%;|NyvF)YY$31W4~F;@R!?hhx;}x&X65#+YCjUQ zX3wo&6?{I@7AS?RRJR>uA;4s|NE&fsPiaM>j zq+qR@&y+8SaQNxNw{a(l>64njD(1Y=tJ4*r^?M{%ZxxHKlz95HF}@e>Rq2poJXPTf ztMCi|y|;irI{u?&RUpP}d7jee@8_MDCS-{FC>mBt)!vwI?&a?^n)yCGvsf^3rnOKx z9y7Wcd02gp_&LIrI1d{Rs`d#X4VX0wk_LG7_woCxoh*z0BCIJqqEXdi`o05(_vW4& z^RHD+_=#J{u%-DAw<}Wb1>!J&1|~78ey$9EVP|@K=^e7A$VK^7e>pc-r%&4}!!Rq# zmG7$Q>eX7m(eCy?X-Y4WLYZRYwxvxbjf#0QTcpevhtTiCTksqcu|5ccy%-_!|>O+U+g2m*4dUx*V14MF!Vx1z|+S-pX*< zkB+8K3fvx|T!hF>t#exUzaTbJX@2#nCjw9 zz@e*pM9&QKW-H}i%`II^gkvARB%f_m2|{Wm;g?UJ&~J$t0%!>d5=kw)ttDa{x`oTh zf7w~$Kin{Ek4+tb72j7h?q5o#blf|^VDPNX#f~fV`AqX&w-QXR{>*SS3Dd8s4ImmQVKrE%q8Ov5eB=+6o!Eo#gh5Yu z*bT)V=|-Ji5*3FkOwDUb`rTqi_CqE(#VHS}#J-O6iY1R`jE4spB|MCND`Gvv^RAB6 zmPys~Z1-xd=9^%8*QZ0ej1bti?;6yNn8|UuIL8&bzvyV)!+hVJA`mUdvTCrncze~q zZh$!9{*~vTqA{pePvn)%xb9Y$0gGBBwK(pqSLTgtBpUp+#@C$0@LNC(%QooW#QXfu zjyT>qghWD~T2?2=g}iPJ%~h|bU0)9CIMN=U7KPS3YQ=T3+?AS>C)mUK?bF~>D^$!N z%bA<=0@m^&&kjpFOHbZe;gWC8>#P#hXnsSq{<3tqyHp*WQ&d)Gus0{*lpdazhAdwG z;%I*83uBWAyfQ_}o)s9M3UObw#hWM5ir*E;_)hQX8M%#!MYM++mTzwi@tzYIV~Zxr zDz*w}srb z*3dnM^RVb;(OGqSg3EOguf{3)TQ`?D0$6K?8M!AO^(Cpu5eAA;n+MN+b84;a}O zFAsfdGLW;!2l`*9-cidc9%1*48p|SCUca+2a{EKTGurm7%=Bn*?_=pt#MFd#mJS5% zX0|<5L4E3~_4`WGmt})FDXjT55v{ErzR?!yJpueLfRPy!UV*}h)r2}brZ|0LP6bm1 z#I;k?3)!3XjiF`srA0lVCm?1{!aatR>i1WYjdC5P|bz+I00T>mZF+KmZ^F{H-ASshcUIME+9#ip?`v=o>BgcU4Dz@u3Ige(paA-KC;&&NLjvgI3_yUG z|1qn-I{;818bLQ0{D&|IfG!{s0UrPM$Pa@g6EwM$=~qNR^o1aBbPS2apvav^4$!e& zz|n7@uNjFtt^-j>3`9PU|3?Sp@mfF-hXIdG0#Qe6kZq0}Fvm}j5Dt5sfjHdp9zX;Z z1CXomTt@VX(f@E+Flf3AXb?%y5J&|1CoLr_2+#&_AXXiR1Q1v(7O#G^GydonVj)c& m8U!E}rT?q2WK~gN_3^dw_6_iMaAXA`EP!K`kkB&FX8kv7DFe3v delta 3247 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 P5dwfisj5;Bnxg&#?0x&Z diff --git a/doc/pdf/archive_write_set_passphrase.3.pdf b/doc/pdf/archive_write_set_passphrase.3.pdf index 47e6e49a5d2b0e7671c6811f86d40bc105e93c05..31a388185c0e3c96bdc826686f72039676d94542 100644 GIT binary patch delta 250 zcmcbibVF%FCl_yWvay*_YN~~Ryu!wqdTk@Le8d`=JT3VT!SQ(g1 zp2)3-CUS(p9(xQ?iOKhQR8U1X3-I1xRyu!wqdTk@Ld8d-)I8Ce;aSQ%PQ zp2)3-CUS(p9(xQ?iOKhQR8U1X3-I1x3a(Z$8p(#6Ep(A34v&BD%xkc!E+g3aajEtR(+{_$ZoQ#}}jhqdPj9iQ?EL_b^4c&~5 N?Q96Bm|S2Z3jo2hPjLVM delta 281 zcmeCJ?5*73Xu@lelwxjdZfK@!VwRXPx!z1-@&hyW$+;$3IAoYjEqP6JjVwcqjI0by ztc(mMdz$K@iL{tD1gVF|@QY zHL)@PBTMGLrYT=pcTL8Ng{ZgW#`AR uIXYWfSQr^Q8M&D`x;Pm*8yh(r7#X=3Sy;H5n;NZiLn(3ODC8kWiI7ec#-)#2D`)6fgm2u!T(KWIRF*33; zFtIW+m^^#79-7Ft+09sV*3EIl5VgS&0o%RVa_&w>P7@nw8aSC)m^vDpnp&Egn>f0e8r#_rP%(MeQds~ReNLPJ diff --git a/doc/pdf/cpio.5.pdf b/doc/pdf/cpio.5.pdf index a2f3166817cf5dc7c38fe2276bdc664cd1621d82..e6f548ed00b487a6f9486f507d7b91f1c2e32f04 100644 GIT binary patch delta 265 zcmdm%u`OeRpAK(wvay*_YN~~Y<5D)NMx7rKlH&Ch}27V)7C_6%0}N&0q9(GHRO{S{hoKni!bq8knma7^rJ<>HFrV zxFnXOYPeV#85o)wz*Q{1VZiKUXyRsSXy|6>WNB&YVr*&TVq|XM~VcLyU~93{0#HEhmTR z>Y<5D)NMx7rKlH&Ch}27V)7C_6%0}N&0q9(GHRO`SsED`m>62>8knma7^rJ<>HFrV zxFnXOYPeV#85o)wz*Q{1VZiKU;^t;y MXG2KEWGNFF00lNl6aWAK diff --git a/doc/pdf/libarchive-formats.5.pdf b/doc/pdf/libarchive-formats.5.pdf index 835bef99d5588e245cb5a7f78f0f0e5871556899..d3609b2893ab1fd7ebe84bd957382788e9311772 100644 GIT binary patch delta 252 zcmeynobm5+#tlckd6Sck&5Tl0Ep*LN6H_Pq_{mTH=$(Z{wB5&&*G$*YGQ`l*%GAWl zz-01SA3Zb?4&P=hI=B1UV~9#jmiALY72WLPcY~4B%+S)%($oZKyl#Lbg16Z}Ab{D) s%)rgS($K=u(%8Vr!otGE(Ztx?#lXbU!pzyy)X>1p&W4bR$q$2N02}Q`AOHXW delta 252 zcmeynobm5+#tlckc`cHRQxgp=&2&x75>qDo_{mTH=$(Z{wB5&&*F@LIGQ`Np%D}|R z&~oxwA3Zb?4&P=hI=B1UV~9#jmiALY72WLPcY~4B#K_Xf$iM_>yl#Lbg16Z}Ab{D) s+{Mho#KP3l+1S9%)Wp@o$lSo(#MRK;)zI0}!qwEk&W4bR$q$2N0Mmv=ZvX%Q diff --git a/doc/pdf/libarchive.3.pdf b/doc/pdf/libarchive.3.pdf index 6a1ef8dd33230fa699a4fe9b34ea15ff53b470fb..5bc146427260edad6ba2517ba89bf0418424828a 100644 GIT binary patch delta 250 zcmbOkHZyF)RAt`eWMea<)Km*yv(&`Y$ues4lMgCqVG#{ivE((=HM9&dw6rocu`)23 zJXb{zP2`43GZvlgs`eP75|dx6s-TK)mQlOG$Z2M1X=rI`0yO@wx+H?PSzcoflarx| ro2j9po1v4XrKyXtrICw~xq*|5vxSR=v4xSLv8kO6Ar+JVYRLcqMY%+2 delta 250 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 delta 4621 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 diff --git a/doc/pdf/libarchive_internals.3.pdf b/doc/pdf/libarchive_internals.3.pdf index cc29cbc5bd9de5cce5dd27b32ef0fd331aac9189..0a2ab717362faba784db6f417575ca4744aadb0d 100644 GIT binary patch delta 268 zcmaFU%J`<0al;)e-sI%u)MQgL3th9+#MH_4*7B1%tg|pgBY4ep4J|_qEv-yVtPD&i zKe5(B6Op%RM$@(4CJs%c-dbX^k*x}bsQl(8+ntQsW`>rAmZl~Krn&~^>IMetnq2z6 z`6(`mC8-)NRz?PfW(IH-o73zyn4O$0Ei8IMetnq2z6 z`6(`mC8-)NRz?PfW(IH-o73zyn4OGVUCf*;UCqqREexGpoGe@%9bH^pEnQ4p4NYC# P+$`*D2&tHS!AS-HIJQX< diff --git a/doc/pdf/mtree.5.pdf b/doc/pdf/mtree.5.pdf index d5d28e2a9b7f5af5f8c4e562deb957c8ac9e2a22..4f2eb904d05e8cbd6566fb20cbae5220e1f752c7 100644 GIT binary patch delta 249 zcmbQ{Kh1xGx&m)y&OVa+(=h8d{o~0FCcgkwow|Z&c}Ea&)$| qurM-qGIBF>ba66rHa2oLFfwv6vaoP9H#KxKHny`Npki{Bx(opEZ$*6o delta 249 zcmbQ{Kh1xGx&p67Qi{2;xuKb^iCJRGy&OVa+(-f8W|aw0FCcgkwow|Z&c}Ea&&RA qG&3-CH8nK1G%&EVG;lJpFm*IGHMKM~H*s_`HMX-Mpki{Bx(on8_CX^6 diff --git a/doc/pdf/tar.5.pdf b/doc/pdf/tar.5.pdf index 5aa66a3f40193b9cf53a093334825147fdcfc8ab..997af2acfde7bca63cfbae6539306abda8c9c851 100644 GIT binary patch delta 251 zcmbO;pJ~o~rVT$@c$1TpQ$YYr8eg^9V~9#j_G?!`72RCleuI(I%+S)%($vJjbaFzcB!aiOsdEpj tle49Tg^{t7k(-&Li<6PFv5~WZk&%m$g@voRsiB*(v7HSe6_XqKWdJz>OZNZ( delta 251 zcmbO;pJ~o~rVT$@crB7r%#FqDEx64mfY0bhSx~tWa*F@LIGQ`Np%D}|R z$Y4^N9;(1(>$YYr8eg^9V~9#j_G?!`72RCleuI(I#K_Xf$iT$NU~)pIB!aiOsdEpj tlexL0g_D_qrJ<9BrHiwvo1vkxk(;Z5v8$tto1uZBtDOxY6_XqKWdNGTNHqWe diff --git a/doc/text/archive_write_filter.3.txt b/doc/text/archive_write_filter.3.txt index f39064a..f6e8be6 100644 --- a/doc/text/archive_write_filter.3.txt +++ b/doc/text/archive_write_filter.3.txt @@ -8,7 +8,7 @@ NAME archive_write_add_filter_lzip, archive_write_add_filter_lzma, archive_write_add_filter_lzop, archive_write_add_filter_none, archive_write_add_filter_program, archive_write_add_filter_uuencode, - archive_write_add_filter_xz + archive_write_add_filter_xz — functions enabling output filters LIBRARY Streaming Archive Library (libarchive, -larchive) diff --git a/doc/text/archive_write_set_options.3.txt b/doc/text/archive_write_set_options.3.txt index 3c002f1..2a10224 100644 --- a/doc/text/archive_write_set_options.3.txt +++ b/doc/text/archive_write_set_options.3.txt @@ -3,7 +3,7 @@ ARCHIVE_WRITE_OPTIONS(3) BSD Library Functions Manual ARCHIVE_WRITE_OPTIONS(3) NAME archive_write_set_filter_option, archive_write_set_format_option, archive_write_set_option, archive_write_set_options — functions control‐ - ling options for reading archives + ling options for writing archives LIBRARY Streaming Archive Library (libarchive, -larchive) diff --git a/doc/text/libarchive_changes.3.txt b/doc/text/libarchive_changes.3.txt index fe4f80e..dbd3568 100644 --- a/doc/text/libarchive_changes.3.txt +++ b/doc/text/libarchive_changes.3.txt @@ -1,7 +1,7 @@ LIBARCHIVE_CHANGES(3) BSD Library Functions Manual LIBARCHIVE_CHANGES(3) NAME - changes in libarchive interface + — changes in libarchive interface CHANGES IN LIBARCHIVE 3 This page describes user-visible changes in libarchive3, and lists public diff --git a/doc/wiki/ManPageArchiveWriteFilter3.wiki b/doc/wiki/ManPageArchiveWriteFilter3.wiki index 3bb4c22..3ec3e46 100644 --- a/doc/wiki/ManPageArchiveWriteFilter3.wiki +++ b/doc/wiki/ManPageArchiveWriteFilter3.wiki @@ -15,6 +15,7 @@ ARCHIVE_WRITE_FILTER(3) manual page '''archive_write_add_filter_program''', '''archive_write_add_filter_uuencode''', '''archive_write_add_filter_xz''' +- functions enabling output filters == LIBRARY == Streaming Archive Library (libarchive, -larchive) == SYNOPSIS == diff --git a/doc/wiki/ManPageArchiveWriteSetOptions3.wiki b/doc/wiki/ManPageArchiveWriteSetOptions3.wiki index f9ed600..7c78d80 100644 --- a/doc/wiki/ManPageArchiveWriteSetOptions3.wiki +++ b/doc/wiki/ManPageArchiveWriteSetOptions3.wiki @@ -4,7 +4,7 @@ ARCHIVE_WRITE_OPTIONS(3) manual page '''archive_write_set_format_option''', '''archive_write_set_option''', '''archive_write_set_options''' -- functions controlling options for reading archives +- functions controlling options for writing archives == LIBRARY == Streaming Archive Library (libarchive, -larchive) == SYNOPSIS == diff --git a/doc/wiki/ManPageLibarchiveChanges3.wiki b/doc/wiki/ManPageLibarchiveChanges3.wiki index a31d68f..40e411d 100644 --- a/doc/wiki/ManPageLibarchiveChanges3.wiki +++ b/doc/wiki/ManPageLibarchiveChanges3.wiki @@ -1,6 +1,6 @@ LIBARCHIVE_CHANGES(3) manual page == NAME == -'''changes''' in libarchive interface +- changes in libarchive interface == CHANGES IN LIBARCHIVE 3 == This page describes user-visible changes in libarchive3, and lists public functions and other symbols changed, deprecated or removed diff --git a/doc/wiki/ManPageLibarchiveFormats5.wiki b/doc/wiki/ManPageLibarchiveFormats5.wiki index e75f050..e0cbe5f 100644 --- a/doc/wiki/ManPageLibarchiveFormats5.wiki +++ b/doc/wiki/ManPageLibarchiveFormats5.wiki @@ -37,7 +37,6 @@ Later variants have extended this by either appropriating undefined areas of the header record, extending the header to multiple records, or by storing special entries that modify the interpretation of subsequent entries. -
'''gnutar'''
The diff --git a/libarchive/archive.h b/libarchive/archive.h index 59e9ef1..1794dd3 100644 --- a/libarchive/archive.h +++ b/libarchive/archive.h @@ -36,7 +36,7 @@ * assert that ARCHIVE_VERSION_NUMBER >= 2012108. */ /* Note: Compiler will complain if this does not match archive_entry.h! */ -#define ARCHIVE_VERSION_NUMBER 3002000 +#define ARCHIVE_VERSION_NUMBER 3002001 #include #include /* for wchar_t */ @@ -155,7 +155,7 @@ __LA_DECL int archive_version_number(void); /* * Textual name/version of the library, useful for version displays. */ -#define ARCHIVE_VERSION_ONLY_STRING "3.2.0" +#define ARCHIVE_VERSION_ONLY_STRING "3.2.1" #define ARCHIVE_VERSION_STRING "libarchive " ARCHIVE_VERSION_ONLY_STRING __LA_DECL const char * archive_version_string(void); diff --git a/libarchive/archive_entry.h b/libarchive/archive_entry.h index 423c8d3..dab2c9d 100644 --- a/libarchive/archive_entry.h +++ b/libarchive/archive_entry.h @@ -29,7 +29,7 @@ #define ARCHIVE_ENTRY_H_INCLUDED /* Note: Compiler will complain if this does not match archive.h! */ -#define ARCHIVE_VERSION_NUMBER 3002000 +#define ARCHIVE_VERSION_NUMBER 3002001 /* * Note: archive_entry.h is for use outside of libarchive; the diff --git a/libarchive/archive_entry_xattr.c b/libarchive/archive_entry_xattr.c index 05eb90f..5fe726b 100644 --- a/libarchive/archive_entry_xattr.c +++ b/libarchive/archive_entry_xattr.c @@ -91,16 +91,11 @@ archive_entry_xattr_add_entry(struct archive_entry *entry, { struct ae_xattr *xp; - for (xp = entry->xattr_head; xp != NULL; xp = xp->next) - ; - if ((xp = (struct ae_xattr *)malloc(sizeof(struct ae_xattr))) == NULL) - /* XXX Error XXX */ - return; + __archive_errx(1, "Out of memory"); if ((xp->name = strdup(name)) == NULL) - /* XXX Error XXX */ - return; + __archive_errx(1, "Out of memory"); if ((xp->value = malloc(size)) != NULL) { memcpy(xp->value, value, size); diff --git a/libarchive/archive_ppmd7.c b/libarchive/archive_ppmd7.c index fe0b031..1aed922 100644 --- a/libarchive/archive_ppmd7.c +++ b/libarchive/archive_ppmd7.c @@ -126,6 +126,11 @@ static Bool Ppmd7_Alloc(CPpmd7 *p, UInt32 size, ISzAlloc *alloc) { if (p->Base == 0 || p->Size != size) { + /* RestartModel() below assumes that p->Size >= UNIT_SIZE + (see the calculation of m->MinContext). */ + if (size < UNIT_SIZE) { + return False; + } Ppmd7_Free(p, alloc); p->AlignOffset = #ifdef PPMD_32BIT diff --git a/libarchive/archive_read_disk_windows.c b/libarchive/archive_read_disk_windows.c index 53bd4b8..566d264 100644 --- a/libarchive/archive_read_disk_windows.c +++ b/libarchive/archive_read_disk_windows.c @@ -1586,7 +1586,7 @@ tree_reopen(struct tree *t, const wchar_t *path, int restore_time) t->stack->flags = needsFirstVisit; /* * Debug flag for Direct IO(No buffering) or Async IO. - * Those dependant on environment variable switches + * Those dependent on environment variable switches * will be removed until next release. */ { diff --git a/libarchive/archive_read_support_format_7zip.c b/libarchive/archive_read_support_format_7zip.c index 90901ac..1dfe52b 100644 --- a/libarchive/archive_read_support_format_7zip.c +++ b/libarchive/archive_read_support_format_7zip.c @@ -2153,6 +2153,9 @@ read_SubStreamsInfo(struct archive_read *a, struct _7z_substream_info *ss, return (-1); if (UMAX_ENTRY < f[i].numUnpackStreams) return (-1); + if (unpack_streams > SIZE_MAX - UMAX_ENTRY) { + return (-1); + } unpack_streams += (size_t)f[i].numUnpackStreams; } if ((p = header_bytes(a, 1)) == NULL) diff --git a/libarchive/archive_read_support_format_cpio.c b/libarchive/archive_read_support_format_cpio.c index c2ca85b..b09db0e 100644 --- a/libarchive/archive_read_support_format_cpio.c +++ b/libarchive/archive_read_support_format_cpio.c @@ -401,6 +401,11 @@ archive_read_format_cpio_read_header(struct archive_read *a, /* If this is a symlink, read the link contents. */ if (archive_entry_filetype(entry) == AE_IFLNK) { + if (cpio->entry_bytes_remaining > 1024 * 1024) { + archive_set_error(&a->archive, ENOMEM, + "Rejecting malformed cpio archive: symlink contents exceed 1 megabyte"); + return (ARCHIVE_FATAL); + } h = __archive_read_ahead(a, (size_t)cpio->entry_bytes_remaining, NULL); if (h == NULL) diff --git a/libarchive/archive_read_support_format_iso9660.c b/libarchive/archive_read_support_format_iso9660.c index 6934cee..f41ba38 100644 --- a/libarchive/archive_read_support_format_iso9660.c +++ b/libarchive/archive_read_support_format_iso9660.c @@ -1091,7 +1091,7 @@ choose_volume(struct archive_read *a, struct iso9660 *iso9660) /* This condition is unlikely; by way of caution. */ vd = &(iso9660->joliet); - skipsize = LOGICAL_BLOCK_SIZE * vd->location; + skipsize = LOGICAL_BLOCK_SIZE * (int64_t)vd->location; skipsize = __archive_read_consume(a, skipsize); if (skipsize < 0) return ((int)skipsize); @@ -1129,7 +1129,7 @@ choose_volume(struct archive_read *a, struct iso9660 *iso9660) && iso9660->seenJoliet) { /* Switch reading data from primary to joliet. */ vd = &(iso9660->joliet); - skipsize = LOGICAL_BLOCK_SIZE * vd->location; + skipsize = LOGICAL_BLOCK_SIZE * (int64_t)vd->location; skipsize -= iso9660->current_position; skipsize = __archive_read_consume(a, skipsize); if (skipsize < 0) diff --git a/libarchive/archive_read_support_format_mtree.c b/libarchive/archive_read_support_format_mtree.c index 81d9652..8c3be9a 100644 --- a/libarchive/archive_read_support_format_mtree.c +++ b/libarchive/archive_read_support_format_mtree.c @@ -1342,7 +1342,7 @@ parse_line(struct archive_read *a, struct archive_entry *entry, /* strsep() is not in C90, but strcspn() is. */ /* Taken from http://unixpapa.com/incnote/string.html */ static char * -la_strsep(char **sp, char *sep) +la_strsep(char **sp, const char *sep) { char *p, *s; if (sp == NULL || *sp == NULL || **sp == '\0') @@ -1385,12 +1385,12 @@ parse_device(dev_t *pdev, struct archive *a, char *val) "Missing number"); return ARCHIVE_WARN; } - numbers[argc++] = (unsigned long)mtree_atol(&p); - if (argc > MAX_PACK_ARGS) { + if (argc >= MAX_PACK_ARGS) { archive_set_error(a, ARCHIVE_ERRNO_FILE_FORMAT, "Too many arguments"); return ARCHIVE_WARN; } + numbers[argc++] = (unsigned long)mtree_atol(&p); } if (argc < 2) { archive_set_error(a, ARCHIVE_ERRNO_FILE_FORMAT, diff --git a/libarchive/archive_read_support_format_rar.c b/libarchive/archive_read_support_format_rar.c index 6450aac..f729f17 100644 --- a/libarchive/archive_read_support_format_rar.c +++ b/libarchive/archive_read_support_format_rar.c @@ -2127,6 +2127,12 @@ parse_codes(struct archive_read *a) rar->range_dec.Stream = &rar->bytein; __archive_ppmd7_functions.Ppmd7_Construct(&rar->ppmd7_context); + if (rar->dictionary_size == 0) { + archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, + "Invalid zero dictionary size"); + return (ARCHIVE_FATAL); + } + if (!__archive_ppmd7_functions.Ppmd7_Alloc(&rar->ppmd7_context, rar->dictionary_size, &g_szalloc)) { @@ -2884,11 +2890,10 @@ copy_from_lzss_window(struct archive_read *a, const void **buffer, } windowoffs = lzss_offset_for_position(&rar->lzss, startpos); - if(windowoffs + length <= lzss_size(&rar->lzss)) + if(windowoffs + length <= lzss_size(&rar->lzss)) { memcpy(&rar->unp_buffer[rar->unp_offset], &rar->lzss.window[windowoffs], length); - else - { + } else if (length <= lzss_size(&rar->lzss)) { firstpart = lzss_size(&rar->lzss) - windowoffs; if (firstpart < 0) { archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, @@ -2900,9 +2905,14 @@ copy_from_lzss_window(struct archive_read *a, const void **buffer, &rar->lzss.window[windowoffs], firstpart); memcpy(&rar->unp_buffer[rar->unp_offset + firstpart], &rar->lzss.window[0], length - firstpart); - } else + } else { memcpy(&rar->unp_buffer[rar->unp_offset], &rar->lzss.window[windowoffs], length); + } + } else { + archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, + "Bad RAR file data"); + return (ARCHIVE_FATAL); } rar->unp_offset += length; if (rar->unp_offset >= rar->unp_buffer_size) diff --git a/libarchive/archive_read_support_format_tar.c b/libarchive/archive_read_support_format_tar.c index 01d85cf..b0521a6 100644 --- a/libarchive/archive_read_support_format_tar.c +++ b/libarchive/archive_read_support_format_tar.c @@ -202,7 +202,7 @@ static int archive_read_format_tar_read_header(struct archive_read *, struct archive_entry *); static int checksum(struct archive_read *, const void *); static int pax_attribute(struct archive_read *, struct tar *, - struct archive_entry *, char *key, char *value); + struct archive_entry *, const char *key, const char *value); static int pax_header(struct archive_read *, struct tar *, struct archive_entry *, char *attr); static void pax_time(const char *, int64_t *sec, long *nanos); @@ -1664,7 +1664,7 @@ pax_header(struct archive_read *a, struct tar *tar, static int pax_attribute_xattr(struct archive_entry *entry, - char *name, char *value) + const char *name, const char *value) { char *name_decoded; void *value_decoded; @@ -1710,7 +1710,7 @@ pax_attribute_xattr(struct archive_entry *entry, */ static int pax_attribute(struct archive_read *a, struct tar *tar, - struct archive_entry *entry, char *key, char *value) + struct archive_entry *entry, const char *key, const char *value) { int64_t s; long n; diff --git a/libarchive/archive_read_support_format_zip.c b/libarchive/archive_read_support_format_zip.c index 0a0be96..34ab04e 100644 --- a/libarchive/archive_read_support_format_zip.c +++ b/libarchive/archive_read_support_format_zip.c @@ -181,6 +181,14 @@ struct zip { char init_decryption; /* Decryption buffer. */ + /* + * The decrypted data starts at decrypted_ptr and + * extends for decrypted_bytes_remaining. Decryption + * adds new data to the end of this block, data is returned + * to clients from the beginning. When the block hits the + * end of decrypted_buffer, it has to be shuffled back to + * the beginning of the buffer. + */ unsigned char *decrypted_buffer; unsigned char *decrypted_ptr; size_t decrypted_buffer_size; @@ -1293,8 +1301,9 @@ zip_read_data_deflate(struct archive_read *a, const void **buff, if (zip->tctx_valid || zip->cctx_valid) { if (zip->decrypted_bytes_remaining < (size_t)bytes_avail) { - size_t buff_remaining = zip->decrypted_buffer_size - - (zip->decrypted_ptr - zip->decrypted_buffer); + size_t buff_remaining = + (zip->decrypted_buffer + zip->decrypted_buffer_size) + - (zip->decrypted_ptr + zip->decrypted_bytes_remaining); if (buff_remaining > (size_t)bytes_avail) buff_remaining = (size_t)bytes_avail; diff --git a/libarchive/archive_write_disk_windows.c b/libarchive/archive_write_disk_windows.c index 800aa89..da76c54 100644 --- a/libarchive/archive_write_disk_windows.c +++ b/libarchive/archive_write_disk_windows.c @@ -468,9 +468,17 @@ permissive_name_w(struct archive_write_disk *a) return (-1); archive_wstring_ensure(&(a->_name_data), 4 + l + 1 + wcslen(wn) + 1); a->name = a->_name_data.s; - /* Prepend "\\?\" and drive name. */ - archive_wstrncpy(&(a->_name_data), L"\\\\?\\", 4); - archive_wstrncat(&(a->_name_data), wsp, l); + /* Prepend "\\?\" and drive name if not already added. */ + if (l > 3 && wsp[0] == L'\\' && wsp[1] == L'\\' && + wsp[2] == L'?' && wsp[3] == L'\\') + { + archive_wstrncpy(&(a->_name_data), wsp, l); + } + else + { + archive_wstrncpy(&(a->_name_data), L"\\\\?\\", 4); + archive_wstrncat(&(a->_name_data), wsp, l); + } archive_wstrncat(&(a->_name_data), L"\\", 1); archive_wstrcat(&(a->_name_data), wn); a->name = a->_name_data.s; diff --git a/libarchive/archive_write_filter.3 b/libarchive/archive_write_filter.3 index 869dc46..e1d1891 100644 --- a/libarchive/archive_write_filter.3 +++ b/libarchive/archive_write_filter.3 @@ -43,6 +43,7 @@ .Nm archive_write_add_filter_program , .Nm archive_write_add_filter_uuencode , .Nm archive_write_add_filter_xz +.Nd functions enabling output filters .Sh LIBRARY Streaming Archive Library (libarchive, -larchive) .Sh SYNOPSIS diff --git a/libarchive/archive_write_set_format_gnutar.c b/libarchive/archive_write_set_format_gnutar.c index 647079d..1d635d2 100644 --- a/libarchive/archive_write_set_format_gnutar.c +++ b/libarchive/archive_write_set_format_gnutar.c @@ -467,7 +467,7 @@ archive_write_gnutar_header(struct archive_write *a, } } if (gnutar->linkname_length > GNUTAR_linkname_size) { - size_t todo = gnutar->linkname_length; + size_t length = gnutar->linkname_length + 1; struct archive_entry *temp = archive_entry_new2(&a->archive); /* Uname/gname here don't really matter since no one reads them; @@ -476,7 +476,7 @@ archive_write_gnutar_header(struct archive_write *a, archive_entry_set_gname(temp, "wheel"); archive_entry_set_pathname(temp, "././@LongLink"); - archive_entry_set_size(temp, gnutar->linkname_length + 1); + archive_entry_set_size(temp, length); ret = archive_format_gnutar_header(a, buff, temp, 'K'); if (ret < ARCHIVE_WARN) goto exit_write_header; @@ -484,11 +484,12 @@ archive_write_gnutar_header(struct archive_write *a, if(ret < ARCHIVE_WARN) goto exit_write_header; archive_entry_free(temp); - /* Write as many 512 bytes blocks as needed to write full name. */ - ret = __archive_write_output(a, gnutar->linkname, todo); + /* Write name and trailing null byte. */ + ret = __archive_write_output(a, gnutar->linkname, length); if(ret < ARCHIVE_WARN) goto exit_write_header; - ret = __archive_write_nulls(a, 0x1ff & (-(ssize_t)todo)); + /* Pad to 512 bytes */ + ret = __archive_write_nulls(a, 0x1ff & (-(ssize_t)length)); if (ret < ARCHIVE_WARN) goto exit_write_header; } @@ -496,7 +497,7 @@ archive_write_gnutar_header(struct archive_write *a, /* If pathname is longer than 100 chars we need to add an 'L' header. */ if (gnutar->pathname_length > GNUTAR_name_size) { const char *pathname = gnutar->pathname; - size_t todo = gnutar->pathname_length; + size_t length = gnutar->pathname_length + 1; struct archive_entry *temp = archive_entry_new2(&a->archive); /* Uname/gname here don't really matter since no one reads them; @@ -505,7 +506,7 @@ archive_write_gnutar_header(struct archive_write *a, archive_entry_set_gname(temp, "wheel"); archive_entry_set_pathname(temp, "././@LongLink"); - archive_entry_set_size(temp, gnutar->pathname_length + 1); + archive_entry_set_size(temp, length); ret = archive_format_gnutar_header(a, buff, temp, 'L'); if (ret < ARCHIVE_WARN) goto exit_write_header; @@ -513,11 +514,12 @@ archive_write_gnutar_header(struct archive_write *a, if(ret < ARCHIVE_WARN) goto exit_write_header; archive_entry_free(temp); - /* Write as many 512 bytes blocks as needed to write full name. */ - ret = __archive_write_output(a, pathname, todo); + /* Write pathname + trailing null byte. */ + ret = __archive_write_output(a, pathname, length); if(ret < ARCHIVE_WARN) goto exit_write_header; - ret = __archive_write_nulls(a, 0x1ff & (-(ssize_t)todo)); + /* Pad to multiple of 512 bytes. */ + ret = __archive_write_nulls(a, 0x1ff & (-(ssize_t)length)); if (ret < ARCHIVE_WARN) goto exit_write_header; } diff --git a/libarchive/archive_write_set_format_iso9660.c b/libarchive/archive_write_set_format_iso9660.c index 4d832fb..cb3e54e 100644 --- a/libarchive/archive_write_set_format_iso9660.c +++ b/libarchive/archive_write_set_format_iso9660.c @@ -6225,7 +6225,7 @@ isoent_gen_joliet_identifier(struct archive_write *a, struct isoent *isoent, unsigned char *p; size_t l; int r; - int ffmax, parent_len; + size_t ffmax, parent_len; static const struct archive_rb_tree_ops rb_ops = { isoent_cmp_node_joliet, isoent_cmp_key_joliet }; @@ -6239,7 +6239,7 @@ isoent_gen_joliet_identifier(struct archive_write *a, struct isoent *isoent, else ffmax = 128; - r = idr_start(a, idr, isoent->children.cnt, ffmax, 6, 2, &rb_ops); + r = idr_start(a, idr, isoent->children.cnt, (int)ffmax, 6, 2, &rb_ops); if (r < 0) return (r); @@ -6252,7 +6252,7 @@ isoent_gen_joliet_identifier(struct archive_write *a, struct isoent *isoent, int ext_off, noff, weight; size_t lt; - if ((int)(l = np->file->basename_utf16.length) > ffmax) + if ((l = np->file->basename_utf16.length) > ffmax) l = ffmax; p = malloc((l+1)*2); @@ -6285,7 +6285,7 @@ isoent_gen_joliet_identifier(struct archive_write *a, struct isoent *isoent, /* * Get a length of MBS of a full-pathname. */ - if ((int)np->file->basename_utf16.length > ffmax) { + if (np->file->basename_utf16.length > ffmax) { if (archive_strncpy_l(&iso9660->mbs, (const char *)np->identifier, l, iso9660->sconv_from_utf16be) != 0 && @@ -6302,7 +6302,9 @@ isoent_gen_joliet_identifier(struct archive_write *a, struct isoent *isoent, /* If a length of full-pathname is longer than 240 bytes, * it violates Joliet extensions regulation. */ - if (parent_len + np->mb_len > 240) { + if (parent_len > 240 + || np->mb_len > 240 + || parent_len + np->mb_len > 240) { archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, "The regulation of Joliet extensions;" " A length of a full-pathname of `%s' is " @@ -6314,11 +6316,11 @@ isoent_gen_joliet_identifier(struct archive_write *a, struct isoent *isoent, /* Make an offset of the number which is used to be set * hexadecimal number to avoid duplicate identifier. */ - if ((int)l == ffmax) + if (l == ffmax) noff = ext_off - 6; - else if ((int)l == ffmax-2) + else if (l == ffmax-2) noff = ext_off - 4; - else if ((int)l == ffmax-4) + else if (l == ffmax-4) noff = ext_off - 2; else noff = ext_off; diff --git a/libarchive/archive_write_set_options.3 b/libarchive/archive_write_set_options.3 index ce7ed89..aeb7a18 100644 --- a/libarchive/archive_write_set_options.3 +++ b/libarchive/archive_write_set_options.3 @@ -32,7 +32,7 @@ .Nm archive_write_set_format_option , .Nm archive_write_set_option , .Nm archive_write_set_options -.Nd functions controlling options for reading archives +.Nd functions controlling options for writing archives .Sh LIBRARY Streaming Archive Library (libarchive, -larchive) .Sh SYNOPSIS diff --git a/libarchive/libarchive-formats.5 b/libarchive/libarchive-formats.5 index e619fe5..9cec760 100644 --- a/libarchive/libarchive-formats.5 +++ b/libarchive/libarchive-formats.5 @@ -65,7 +65,6 @@ Later variants have extended this by either appropriating undefined areas of the header record, extending the header to multiple records, or by storing special entries that modify the interpretation of subsequent entries. -.Pp .Bl -tag -width indent .It Cm gnutar The diff --git a/libarchive/libarchive_changes.3 b/libarchive/libarchive_changes.3 index bacd6e1..881a67c 100644 --- a/libarchive/libarchive_changes.3 +++ b/libarchive/libarchive_changes.3 @@ -28,7 +28,7 @@ .Dt LIBARCHIVE_CHANGES 3 .Os .Sh NAME -.Nm changes in libarchive interface +.Nd changes in libarchive interface .\" .Sh CHANGES IN LIBARCHIVE 3 This page describes user-visible changes in libarchive3, and lists diff --git a/libarchive/test/CMakeLists.txt b/libarchive/test/CMakeLists.txt index ae5a1aa..124aa3a 100644 --- a/libarchive/test/CMakeLists.txt +++ b/libarchive/test/CMakeLists.txt @@ -143,6 +143,7 @@ IF(ENABLE_TEST) test_read_format_rar_encryption_data.c test_read_format_rar_encryption_header.c test_read_format_rar_encryption_partially.c + test_read_format_rar_invalid1.c test_read_format_raw.c test_read_format_tar.c test_read_format_tar_concatenated.c @@ -222,6 +223,7 @@ IF(ENABLE_TEST) test_write_format_cpio_newc.c test_write_format_cpio_odc.c test_write_format_gnutar.c + test_write_format_gnutar_filenames.c test_write_format_iso9660.c test_write_format_iso9660_boot.c test_write_format_iso9660_empty.c diff --git a/libarchive/test/list.h b/libarchive/test/list.h index ad5f616..89b22c6 100644 --- a/libarchive/test/list.h +++ b/libarchive/test/list.h @@ -283,6 +283,7 @@ DEFINE_TEST(test_read_format_rar_multivolume_uncompressed_files) DEFINE_TEST(test_read_format_rar_encryption_data) DEFINE_TEST(test_read_format_rar_encryption_header) DEFINE_TEST(test_read_format_rar_encryption_partially) +DEFINE_TEST(test_read_format_rar_invalid1) DEFINE_TEST(test_read_format_raw) DEFINE_TEST(test_read_format_tar) DEFINE_TEST(test_read_format_tar_concatenated) @@ -422,6 +423,8 @@ DEFINE_TEST(test_write_format_cpio_empty) DEFINE_TEST(test_write_format_cpio_newc) DEFINE_TEST(test_write_format_cpio_odc) DEFINE_TEST(test_write_format_gnutar) +DEFINE_TEST(test_write_format_gnutar_filenames) +DEFINE_TEST(test_write_format_gnutar_linknames) DEFINE_TEST(test_write_format_iso9660_boot) DEFINE_TEST(test_write_format_iso9660) DEFINE_TEST(test_write_format_iso9660_empty) diff --git a/libarchive/test/main.c b/libarchive/test/main.c index e0af431..0f50e94 100644 --- a/libarchive/test/main.c +++ b/libarchive/test/main.c @@ -2533,18 +2533,36 @@ usage(const char *program) static char * get_refdir(const char *d) { - char tried[512] = { '\0' }; - char buff[128]; - char *pwd, *p; + size_t tried_size, buff_size; + char *buff, *tried, *pwd = NULL, *p = NULL; + +#ifdef PATH_MAX + buff_size = PATH_MAX; +#else + buff_size = 8192; +#endif + buff = calloc(buff_size, 1); + if (buff == NULL) { + fprintf(stderr, "Unable to allocate memory\n"); + exit(1); + } + + /* Allocate a buffer to hold the various directories we checked. */ + tried_size = buff_size * 2; + tried = calloc(tried_size, 1); + if (tried == NULL) { + fprintf(stderr, "Unable to allocate memory\n"); + exit(1); + } /* If a dir was specified, try that */ if (d != NULL) { pwd = NULL; - snprintf(buff, sizeof(buff), "%s", d); + snprintf(buff, buff_size, "%s", d); p = slurpfile(NULL, "%s/%s", buff, KNOWNREF); if (p != NULL) goto success; - strncat(tried, buff, sizeof(tried) - strlen(tried) - 1); - strncat(tried, "\n", sizeof(tried) - strlen(tried) - 1); + strncat(tried, buff, tried_size - strlen(tried) - 1); + strncat(tried, "\n", tried_size - strlen(tried) - 1); goto failure; } @@ -2558,48 +2576,48 @@ get_refdir(const char *d) pwd[strlen(pwd) - 1] = '\0'; /* Look for a known file. */ - snprintf(buff, sizeof(buff), "%s", pwd); + snprintf(buff, buff_size, "%s", pwd); p = slurpfile(NULL, "%s/%s", buff, KNOWNREF); if (p != NULL) goto success; - strncat(tried, buff, sizeof(tried) - strlen(tried) - 1); - strncat(tried, "\n", sizeof(tried) - strlen(tried) - 1); + strncat(tried, buff, tried_size - strlen(tried) - 1); + strncat(tried, "\n", tried_size - strlen(tried) - 1); - snprintf(buff, sizeof(buff), "%s/test", pwd); + snprintf(buff, buff_size, "%s/test", pwd); p = slurpfile(NULL, "%s/%s", buff, KNOWNREF); if (p != NULL) goto success; - strncat(tried, buff, sizeof(tried) - strlen(tried) - 1); - strncat(tried, "\n", sizeof(tried) - strlen(tried) - 1); + strncat(tried, buff, tried_size - strlen(tried) - 1); + strncat(tried, "\n", tried_size - strlen(tried) - 1); #if defined(LIBRARY) - snprintf(buff, sizeof(buff), "%s/%s/test", pwd, LIBRARY); + snprintf(buff, buff_size, "%s/%s/test", pwd, LIBRARY); #else - snprintf(buff, sizeof(buff), "%s/%s/test", pwd, PROGRAM); + snprintf(buff, buff_size, "%s/%s/test", pwd, PROGRAM); #endif p = slurpfile(NULL, "%s/%s", buff, KNOWNREF); if (p != NULL) goto success; - strncat(tried, buff, sizeof(tried) - strlen(tried) - 1); - strncat(tried, "\n", sizeof(tried) - strlen(tried) - 1); + strncat(tried, buff, tried_size - strlen(tried) - 1); + strncat(tried, "\n", tried_size - strlen(tried) - 1); #if defined(PROGRAM_ALIAS) - snprintf(buff, sizeof(buff), "%s/%s/test", pwd, PROGRAM_ALIAS); + snprintf(buff, buff_size, "%s/%s/test", pwd, PROGRAM_ALIAS); p = slurpfile(NULL, "%s/%s", buff, KNOWNREF); if (p != NULL) goto success; - strncat(tried, buff, sizeof(tried) - strlen(tried) - 1); - strncat(tried, "\n", sizeof(tried) - strlen(tried) - 1); + strncat(tried, buff, tried_size - strlen(tried) - 1); + strncat(tried, "\n", tried_size - strlen(tried) - 1); #endif if (memcmp(pwd, "/usr/obj", 8) == 0) { - snprintf(buff, sizeof(buff), "%s", pwd + 8); + snprintf(buff, buff_size, "%s", pwd + 8); p = slurpfile(NULL, "%s/%s", buff, KNOWNREF); if (p != NULL) goto success; - strncat(tried, buff, sizeof(tried) - strlen(tried) - 1); - strncat(tried, "\n", sizeof(tried) - strlen(tried) - 1); + strncat(tried, buff, tried_size - strlen(tried) - 1); + strncat(tried, "\n", tried_size - strlen(tried) - 1); - snprintf(buff, sizeof(buff), "%s/test", pwd + 8); + snprintf(buff, buff_size, "%s/test", pwd + 8); p = slurpfile(NULL, "%s/%s", buff, KNOWNREF); if (p != NULL) goto success; - strncat(tried, buff, sizeof(tried) - strlen(tried) - 1); - strncat(tried, "\n", sizeof(tried) - strlen(tried) - 1); + strncat(tried, buff, tried_size - strlen(tried) - 1); + strncat(tried, "\n", tried_size - strlen(tried) - 1); } failure: @@ -2614,7 +2632,12 @@ failure: success: free(p); free(pwd); - return strdup(buff); + free(tried); + + /* Copy result into a fresh buffer to reduce memory usage. */ + p = strdup(buff); + free(buff); + return p; } int diff --git a/libarchive/test/test_read_format_rar_invalid1.c b/libarchive/test/test_read_format_rar_invalid1.c new file mode 100644 index 0000000..61dea16 --- /dev/null +++ b/libarchive/test/test_read_format_rar_invalid1.c @@ -0,0 +1,44 @@ +/*- + * Copyright (c) 2003-2016 Tim Kientzle + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include "test.h" +__FBSDID("$FreeBSD$"); + +DEFINE_TEST(test_read_format_rar_invalid1) +{ + const char *refname = "test_read_format_rar_invalid1.rar"; + struct archive *a; + struct archive_entry *ae; + char *buff[100]; + + extract_reference_file(refname); + assert((a = archive_read_new()) != NULL); + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, refname, 10240)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); + assertEqualIntA(a, ARCHIVE_FATAL, archive_read_data(a, buff, 99)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); + assertEqualInt(ARCHIVE_OK, archive_read_free(a)); +} diff --git a/libarchive/test/test_read_format_rar_invalid1.rar.uu b/libarchive/test/test_read_format_rar_invalid1.rar.uu new file mode 100644 index 0000000..2380399 --- /dev/null +++ b/libarchive/test/test_read_format_rar_invalid1.rar.uu @@ -0,0 +1,5 @@ +begin 644 test_read_format_rar_invalid1.rar +M4F%R(1H'`,^0B$4= +2,P0`I($``'1Estderr1", testprog)); + assertEmptyFile("stderr1"); + assert(0 != systemf("%s -cf archive.tar file1 file2 file3 2>stderr2", testprog)); + assert(0 != systemf("%s -cf archive.tar 2>stderr3", testprog)); + assert(0 != systemf("%s -cf archive.tar file3 2>stderr4", testprog)); +} diff --git a/tar/write.c b/tar/write.c index 53b6383..2d076f4 100644 --- a/tar/write.c +++ b/tar/write.c @@ -884,7 +884,7 @@ write_hierarchy(struct bsdtar *bsdtar, struct archive *a, const char *path) else if (r != ARCHIVE_OK) { lafe_warnc(archive_errno(disk), "%s", archive_error_string(disk)); - if (r == ARCHIVE_FATAL) { + if (r == ARCHIVE_FATAL || r == ARCHIVE_FAILED) { bsdtar->return_value = 1; return; } else if (r < ARCHIVE_WARN) -- 2.7.4