svn commit: r345654 - in projects/capsicum-test: . bin/dd contrib/elftoolchain/libdwarf contrib/elftoolchain/readelf contrib/elftoolchain/strings contrib/libarchive/libarchive contrib/libarchive/li...
Enji Cooper
ngie at FreeBSD.org
Tue Sep 3 14:05:50 UTC 2019
Author: ngie
Date: Thu Mar 28 20:17:14 2019
New Revision: 345654
URL: https://svnweb.freebsd.org/changeset/base/345654
Log:
MFhead at r345652
Added:
projects/capsicum-test/contrib/libarchive/libarchive/test/test_read_format_zip_bz2_hang.zip.uu
- copied unchanged from r345652, head/contrib/libarchive/libarchive/test/test_read_format_zip_bz2_hang.zip.uu
projects/capsicum-test/contrib/libarchive/libarchive/test/test_read_format_zip_ppmd8_crash_1.zipx.uu
- copied unchanged from r345652, head/contrib/libarchive/libarchive/test/test_read_format_zip_ppmd8_crash_1.zipx.uu
projects/capsicum-test/contrib/libarchive/libarchive/test/test_read_format_zip_ppmd8_crash_2.zipx.uu
- copied unchanged from r345652, head/contrib/libarchive/libarchive/test/test_read_format_zip_ppmd8_crash_2.zipx.uu
projects/capsicum-test/sys/conf/dtb.build.mk
- copied unchanged from r345652, head/sys/conf/dtb.build.mk
projects/capsicum-test/sys/geom/geom_flashmap.h
- copied unchanged from r345652, head/sys/geom/geom_flashmap.h
projects/capsicum-test/sys/geom/label/g_label_flashmap.c
- copied unchanged from r345652, head/sys/geom/label/g_label_flashmap.c
projects/capsicum-test/sys/powerpc/powernv/opal_hmi.c
- copied unchanged from r345652, head/sys/powerpc/powernv/opal_hmi.c
projects/capsicum-test/tools/build/options/WITHOUT_RETPOLINE
- copied unchanged from r345652, head/tools/build/options/WITHOUT_RETPOLINE
Deleted:
projects/capsicum-test/sys/powerpc/aim/isa3_hashtb.c
Modified:
projects/capsicum-test/Makefile.inc1
projects/capsicum-test/UPDATING
projects/capsicum-test/bin/dd/dd.1
projects/capsicum-test/contrib/elftoolchain/libdwarf/libdwarf_lineno.c
projects/capsicum-test/contrib/elftoolchain/readelf/readelf.c
projects/capsicum-test/contrib/elftoolchain/strings/strings.c
projects/capsicum-test/contrib/libarchive/libarchive/archive_blake2sp_ref.c
projects/capsicum-test/contrib/libarchive/libarchive/archive_entry.c
projects/capsicum-test/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c
projects/capsicum-test/contrib/libarchive/libarchive/archive_read_support_format_rar5.c
projects/capsicum-test/contrib/libarchive/libarchive/archive_read_support_format_zip.c
projects/capsicum-test/contrib/libarchive/libarchive/archive_string.c
projects/capsicum-test/contrib/libarchive/libarchive/archive_write_disk_posix.c
projects/capsicum-test/contrib/libarchive/libarchive/archive_write_set_format_7zip.c
projects/capsicum-test/contrib/libarchive/libarchive/test/test_entry.c
projects/capsicum-test/contrib/libarchive/libarchive/test/test_read_format_rar5.c
projects/capsicum-test/contrib/libarchive/libarchive/test/test_read_format_xar.c
projects/capsicum-test/contrib/libarchive/libarchive/test/test_read_format_zip.c
projects/capsicum-test/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
projects/capsicum-test/contrib/netbsd-tests/lib/libc/regex/t_exhaust.c
projects/capsicum-test/contrib/tzdata/Makefile
projects/capsicum-test/contrib/tzdata/NEWS
projects/capsicum-test/contrib/tzdata/README
projects/capsicum-test/contrib/tzdata/africa
projects/capsicum-test/contrib/tzdata/asia
projects/capsicum-test/contrib/tzdata/backward
projects/capsicum-test/contrib/tzdata/backzone
projects/capsicum-test/contrib/tzdata/etcetera
projects/capsicum-test/contrib/tzdata/europe
projects/capsicum-test/contrib/tzdata/leap-seconds.list
projects/capsicum-test/contrib/tzdata/leapseconds
projects/capsicum-test/contrib/tzdata/northamerica
projects/capsicum-test/contrib/tzdata/theory.html
projects/capsicum-test/contrib/tzdata/version
projects/capsicum-test/crypto/openssh/readconf.c
projects/capsicum-test/crypto/openssh/scp.c
projects/capsicum-test/gnu/usr.bin/binutils/as/Makefile
projects/capsicum-test/gnu/usr.bin/binutils/ld/Makefile
projects/capsicum-test/gnu/usr.bin/binutils/objcopy/Makefile
projects/capsicum-test/gnu/usr.bin/binutils/objdump/Makefile
projects/capsicum-test/lib/libarchive/tests/Makefile
projects/capsicum-test/lib/libc/Makefile
projects/capsicum-test/lib/libc/gen/fts-compat.c
projects/capsicum-test/lib/libc/gen/fts-compat11.c
projects/capsicum-test/lib/libc/gen/fts.c
projects/capsicum-test/lib/libc/gen/sysctl.3
projects/capsicum-test/lib/libthr/Makefile
projects/capsicum-test/lib/libutil/pidfile.c
projects/capsicum-test/lib/libutil/tests/pidfile_test.c
projects/capsicum-test/lib/libvgl/bitmap.c
projects/capsicum-test/lib/libvgl/main.c
projects/capsicum-test/lib/libvgl/mouse.c
projects/capsicum-test/lib/libvgl/simple.c
projects/capsicum-test/lib/libvgl/text.c
projects/capsicum-test/lib/libvgl/vgl.3
projects/capsicum-test/lib/libvgl/vgl.h
projects/capsicum-test/libexec/rc/rc.d/ipfw
projects/capsicum-test/libexec/rc/rc.d/ippool
projects/capsicum-test/libexec/rtld-elf/Makefile
projects/capsicum-test/libexec/rtld-elf/rtld.c
projects/capsicum-test/sbin/fsck_msdosfs/dir.c
projects/capsicum-test/sbin/init/init.c
projects/capsicum-test/secure/usr.bin/ssh/Makefile
projects/capsicum-test/share/man/man4/geom_uzip.4
projects/capsicum-test/share/man/man4/tcp.4
projects/capsicum-test/share/man/man5/rc.conf.5
projects/capsicum-test/share/misc/committers-src.dot
projects/capsicum-test/share/misc/iso3166
projects/capsicum-test/share/mk/googletest.test.inc.mk
projects/capsicum-test/share/mk/src.opts.mk
projects/capsicum-test/stand/common/disk.c
projects/capsicum-test/stand/common/disk.h
projects/capsicum-test/stand/efi/libefi/efipart.c
projects/capsicum-test/stand/efi/loader/main.c
projects/capsicum-test/stand/i386/libi386/biosdisk.c
projects/capsicum-test/stand/i386/zfsboot/Makefile
projects/capsicum-test/stand/libsa/zfs/zfs.c
projects/capsicum-test/stand/lua/config.lua
projects/capsicum-test/stand/lua/menu.lua
projects/capsicum-test/stand/lua/password.lua
projects/capsicum-test/stand/mips/beri/loader/beri_disk_cfi.c
projects/capsicum-test/stand/mips/beri/loader/beri_disk_sdcard.c
projects/capsicum-test/stand/uboot/common/main.c
projects/capsicum-test/stand/uboot/lib/disk.c
projects/capsicum-test/stand/usb/storage/umass_loader.c
projects/capsicum-test/stand/userboot/userboot/main.c
projects/capsicum-test/stand/userboot/userboot/userboot_disk.c
projects/capsicum-test/sys/amd64/amd64/fpu.c
projects/capsicum-test/sys/amd64/linux/linux_dummy.c
projects/capsicum-test/sys/amd64/linux/linux_machdep.c
projects/capsicum-test/sys/amd64/linux/linux_proto.h
projects/capsicum-test/sys/amd64/linux/linux_syscall.h
projects/capsicum-test/sys/amd64/linux/linux_syscalls.c
projects/capsicum-test/sys/amd64/linux/linux_sysent.c
projects/capsicum-test/sys/amd64/linux/linux_systrace_args.c
projects/capsicum-test/sys/amd64/linux/syscalls.master
projects/capsicum-test/sys/amd64/linux32/linux32_dummy.c
projects/capsicum-test/sys/amd64/linux32/linux32_machdep.c
projects/capsicum-test/sys/amd64/linux32/linux32_proto.h
projects/capsicum-test/sys/amd64/linux32/linux32_syscall.h
projects/capsicum-test/sys/amd64/linux32/linux32_syscalls.c
projects/capsicum-test/sys/amd64/linux32/linux32_sysent.c
projects/capsicum-test/sys/amd64/linux32/linux32_systrace_args.c
projects/capsicum-test/sys/amd64/linux32/syscalls.master
projects/capsicum-test/sys/arm64/arm64/identcpu.c
projects/capsicum-test/sys/arm64/conf/GENERIC
projects/capsicum-test/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c
projects/capsicum-test/sys/compat/linux/linux_fork.c
projects/capsicum-test/sys/compat/linux/linux_ipc.c
projects/capsicum-test/sys/compat/linux/linux_ipc.h
projects/capsicum-test/sys/conf/dtb.mk
projects/capsicum-test/sys/conf/files
projects/capsicum-test/sys/conf/files.powerpc
projects/capsicum-test/sys/conf/kern.post.mk
projects/capsicum-test/sys/conf/kmod.mk
projects/capsicum-test/sys/conf/options
projects/capsicum-test/sys/dev/cfi/cfi_core.c
projects/capsicum-test/sys/dev/cfi/cfi_reg.h
projects/capsicum-test/sys/dev/cfi/cfi_var.h
projects/capsicum-test/sys/dev/etherswitch/e6000sw/e6000sw.c
projects/capsicum-test/sys/dev/jedec_dimm/jedec_dimm.c
projects/capsicum-test/sys/dev/mpr/mpr.c
projects/capsicum-test/sys/dev/mpr/mpr_table.c
projects/capsicum-test/sys/dev/mps/mps.c
projects/capsicum-test/sys/dev/mps/mps_table.c
projects/capsicum-test/sys/dev/neta/if_mvneta.c
projects/capsicum-test/sys/dev/random/random_harvestq.c
projects/capsicum-test/sys/dev/smartpqi/smartpqi_cam.c
projects/capsicum-test/sys/dev/tpm/tpm20.c
projects/capsicum-test/sys/dev/tpm/tpm20.h
projects/capsicum-test/sys/dev/tpm/tpm_crb.c
projects/capsicum-test/sys/dev/tpm/tpm_tis.c
projects/capsicum-test/sys/dev/usb/controller/xhci_pci.c
projects/capsicum-test/sys/dev/usb/wlan/if_run.c
projects/capsicum-test/sys/fs/tmpfs/tmpfs.h
projects/capsicum-test/sys/fs/tmpfs/tmpfs_vfsops.c
projects/capsicum-test/sys/geom/geom_flashmap.c
projects/capsicum-test/sys/geom/label/g_label.c
projects/capsicum-test/sys/geom/label/g_label.h
projects/capsicum-test/sys/i386/i386/npx.c
projects/capsicum-test/sys/i386/linux/linux.h
projects/capsicum-test/sys/i386/linux/linux_dummy.c
projects/capsicum-test/sys/i386/linux/linux_machdep.c
projects/capsicum-test/sys/i386/linux/linux_proto.h
projects/capsicum-test/sys/i386/linux/linux_syscall.h
projects/capsicum-test/sys/i386/linux/linux_syscalls.c
projects/capsicum-test/sys/i386/linux/linux_sysent.c
projects/capsicum-test/sys/i386/linux/linux_systrace_args.c
projects/capsicum-test/sys/i386/linux/syscalls.master
projects/capsicum-test/sys/kern/imgact_elf.c
projects/capsicum-test/sys/kern/kern_descrip.c
projects/capsicum-test/sys/kern/kern_intr.c
projects/capsicum-test/sys/kern/kern_mib.c
projects/capsicum-test/sys/mips/atheros/ar71xx_gpio.c
projects/capsicum-test/sys/mips/atheros/ar71xx_gpiovar.h
projects/capsicum-test/sys/mips/conf/DIR-825C1
projects/capsicum-test/sys/modules/efirt/Makefile
projects/capsicum-test/sys/modules/hwpmc_mips24k/Makefile
projects/capsicum-test/sys/modules/hwpmc_mips74k/Makefile
projects/capsicum-test/sys/modules/iflib/Makefile
projects/capsicum-test/sys/modules/nvdimm/Makefile
projects/capsicum-test/sys/modules/tmpfs/Makefile
projects/capsicum-test/sys/modules/tpm/Makefile
projects/capsicum-test/sys/net/if_bridge.c
projects/capsicum-test/sys/netinet/ip_icmp.c
projects/capsicum-test/sys/netinet/sctp.h
projects/capsicum-test/sys/netinet/sctp_indata.c
projects/capsicum-test/sys/netinet/sctp_output.c
projects/capsicum-test/sys/netinet/sctp_pcb.c
projects/capsicum-test/sys/netinet/sctp_ss_functions.c
projects/capsicum-test/sys/netinet/sctp_structs.h
projects/capsicum-test/sys/netinet/sctp_usrreq.c
projects/capsicum-test/sys/netinet/sctputil.c
projects/capsicum-test/sys/netinet/sctputil.h
projects/capsicum-test/sys/netinet/tcp_output.c
projects/capsicum-test/sys/netinet/tcp_subr.c
projects/capsicum-test/sys/netinet/tcp_syncache.c
projects/capsicum-test/sys/netinet/tcp_timer.c
projects/capsicum-test/sys/netinet/tcp_timer.h
projects/capsicum-test/sys/netpfil/pf/pf_ioctl.c
projects/capsicum-test/sys/powerpc/aim/aim_machdep.c
projects/capsicum-test/sys/powerpc/aim/moea64_native.c
projects/capsicum-test/sys/powerpc/include/spr.h
projects/capsicum-test/sys/powerpc/include/trap.h
projects/capsicum-test/sys/powerpc/powernv/opal.h
projects/capsicum-test/sys/powerpc/powerpc/interrupt.c
projects/capsicum-test/sys/riscv/riscv/timer.c
projects/capsicum-test/sys/sys/ctype.h
projects/capsicum-test/sys/sys/random.h
projects/capsicum-test/sys/vm/swap_pager.c
projects/capsicum-test/sys/vm/vm_map.c
projects/capsicum-test/sys/x86/iommu/busdma_dmar.c
projects/capsicum-test/tests/sys/netmap/Makefile
projects/capsicum-test/tests/sys/netmap/ctrl-api-test.c
projects/capsicum-test/tests/sys/netpfil/pf/icmp.sh
projects/capsicum-test/tools/build/mk/OptionalObsoleteFiles.inc
projects/capsicum-test/tools/tools/makeroot/makeroot.sh
projects/capsicum-test/usr.bin/calendar/calendars/calendar.freebsd
projects/capsicum-test/usr.bin/dtc/dtb.cc
projects/capsicum-test/usr.bin/dtc/dtb.hh
projects/capsicum-test/usr.bin/dtc/dtc.1
projects/capsicum-test/usr.bin/dtc/dtc.cc
projects/capsicum-test/usr.bin/dtc/fdt.cc
projects/capsicum-test/usr.bin/dtc/fdt.hh
projects/capsicum-test/usr.bin/dtc/input_buffer.cc
projects/capsicum-test/usr.bin/dtc/util.hh
projects/capsicum-test/usr.sbin/daemon/daemon.8
Directory Properties:
projects/capsicum-test/ (props changed)
projects/capsicum-test/contrib/elftoolchain/ (props changed)
projects/capsicum-test/contrib/libarchive/ (props changed)
projects/capsicum-test/contrib/llvm/ (props changed)
projects/capsicum-test/contrib/netbsd-tests/ (props changed)
projects/capsicum-test/contrib/tzdata/ (props changed)
projects/capsicum-test/crypto/openssh/ (props changed)
projects/capsicum-test/gnu/usr.bin/binutils/ (props changed)
projects/capsicum-test/sys/cddl/contrib/opensolaris/ (props changed)
Modified: projects/capsicum-test/Makefile.inc1
==============================================================================
--- projects/capsicum-test/Makefile.inc1 Thu Mar 28 20:16:19 2019 (r345653)
+++ projects/capsicum-test/Makefile.inc1 Thu Mar 28 20:17:14 2019 (r345654)
@@ -1906,11 +1906,11 @@ create-kernel-packages-flavor${flavor:C,^""$,${_defaul
/name/ { printf("===> Creating %s-", $$2); next } \
/version/ {print $$2; next } ' \
${KSTAGEDIR}/${DISTDIR}/kernel.${INSTALLKERNEL}${flavor}.ucl ; \
- ${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh -o ALLOW_BASE_SHLIBS=yes \
+ ${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/usr/bin/uname -o ALLOW_BASE_SHLIBS=yes \
create -M ${KSTAGEDIR}/${DISTDIR}/kernel.${INSTALLKERNEL}${flavor}.ucl \
-p ${KSTAGEDIR}/${DISTDIR}/kernel.${INSTALLKERNEL}${flavor}.plist \
-r ${KSTAGEDIR}/${DISTDIR} \
- -o ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/${PKG_VERSION}
+ -o ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/usr/bin/uname config ABI)/${PKG_VERSION}
. endfor
.endif
.if ${BUILDKERNELS:[#]} > 1 && ${NO_INSTALLEXTRAKERNELS} != "yes"
@@ -1938,24 +1938,24 @@ create-kernel-packages-extra-flavor${flavor:C,^""$,${_
/name/ { printf("===> Creating %s-", $$2); next } \
/version/ {print $$2; next } ' \
${KSTAGEDIR}/kernel.${_kernel}/kernel.${_kernel}${flavor}.ucl ; \
- ${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh -o ALLOW_BASE_SHLIBS=yes \
+ ${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/usr/bin/uname -o ALLOW_BASE_SHLIBS=yes \
create -M ${KSTAGEDIR}/kernel.${_kernel}/kernel.${_kernel}${flavor}.ucl \
-p ${KSTAGEDIR}/kernel.${_kernel}/kernel.${_kernel}${flavor}.plist \
-r ${KSTAGEDIR}/kernel.${_kernel} \
- -o ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/${PKG_VERSION}
+ -o ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/usr/bin/uname config ABI)/${PKG_VERSION}
. endfor
. endif
. endfor
.endif
sign-packages: _pkgbootstrap .PHONY
- @[ -L "${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/latest" ] && \
- unlink ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/latest ; \
- ${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh repo \
- -o ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/${PKG_VERSION} \
- ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI)/${PKG_VERSION} \
+ @[ -L "${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/usr/bin/uname config ABI)/latest" ] && \
+ unlink ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/usr/bin/uname config ABI)/latest ; \
+ ${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/usr/bin/uname repo \
+ -o ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/usr/bin/uname config ABI)/${PKG_VERSION} \
+ ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/usr/bin/uname config ABI)/${PKG_VERSION} \
${PKGSIGNKEY} ; \
- cd ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/bin/sh config ABI); \
+ cd ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/usr/bin/uname config ABI); \
ln -s ${PKG_VERSION} latest
#
Modified: projects/capsicum-test/UPDATING
==============================================================================
--- projects/capsicum-test/UPDATING Thu Mar 28 20:16:19 2019 (r345653)
+++ projects/capsicum-test/UPDATING Thu Mar 28 20:17:14 2019 (r345654)
@@ -43,6 +43,11 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW:
prerequisites and upgrading, if you are not already using clang 3.5.0
or higher.
+20190226:
+ geom_uzip(4) depends on the new module xz. If geom_uzip is statically
+ compiled into your custom kernel, add 'device xz' statement to the
+ kernel config.
+
20190219:
drm and drm2 have been removed from the tree. Please see
https://wiki.freebsd.org/Graphics for the latest information on
Modified: projects/capsicum-test/bin/dd/dd.1
==============================================================================
--- projects/capsicum-test/bin/dd/dd.1 Thu Mar 28 20:16:19 2019 (r345653)
+++ projects/capsicum-test/bin/dd/dd.1 Thu Mar 28 20:17:14 2019 (r345654)
@@ -32,7 +32,7 @@
.\" @(#)dd.1 8.2 (Berkeley) 1/13/94
.\" $FreeBSD$
.\"
-.Dd August 8, 2018
+.Dd March 26, 2019
.Dt DD 1
.Os
.Sh NAME
@@ -427,7 +427,8 @@ if necessary, to a 1MiB boundary:
.Xr mt 1 ,
.Xr recoverdisk 1 ,
.Xr tr 1 ,
-.Xr geom 4
+.Xr geom 4 ,
+.Xr trim 8
.Sh STANDARDS
The
.Nm
Modified: projects/capsicum-test/contrib/elftoolchain/libdwarf/libdwarf_lineno.c
==============================================================================
--- projects/capsicum-test/contrib/elftoolchain/libdwarf/libdwarf_lineno.c Thu Mar 28 20:16:19 2019 (r345653)
+++ projects/capsicum-test/contrib/elftoolchain/libdwarf/libdwarf_lineno.c Thu Mar 28 20:17:14 2019 (r345654)
@@ -33,9 +33,10 @@ _dwarf_lineno_add_file(Dwarf_LineInfo li, uint8_t **p,
Dwarf_Error *error, Dwarf_Debug dbg)
{
Dwarf_LineFile lf;
- const char *dirname;
+ FILE *filepath;
+ const char *incdir;
uint8_t *src;
- int slen;
+ size_t slen;
src = *p;
@@ -54,20 +55,33 @@ _dwarf_lineno_add_file(Dwarf_LineInfo li, uint8_t **p,
return (DW_DLE_DIR_INDEX_BAD);
}
- /* Make full pathname if need. */
+ /* Make a full pathname if needed. */
if (*lf->lf_fname != '/') {
- dirname = compdir;
+ filepath = open_memstream(&lf->lf_fullpath, &slen);
+ if (filepath == NULL) {
+ free(lf);
+ DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY);
+ return (DW_DLE_MEMORY);
+ }
+
if (lf->lf_dirndx > 0)
- dirname = li->li_incdirs[lf->lf_dirndx - 1];
- if (dirname != NULL) {
- slen = strlen(dirname) + strlen(lf->lf_fname) + 2;
- if ((lf->lf_fullpath = malloc(slen)) == NULL) {
- free(lf);
- DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY);
- return (DW_DLE_MEMORY);
- }
- snprintf(lf->lf_fullpath, slen, "%s/%s", dirname,
- lf->lf_fname);
+ incdir = li->li_incdirs[lf->lf_dirndx - 1];
+ else
+ incdir = NULL;
+
+ /*
+ * Prepend the compilation directory if the directory table
+ * entry is relative.
+ */
+ if (incdir == NULL || *incdir != '/')
+ fprintf(filepath, "%s/", compdir);
+ if (incdir != NULL)
+ fprintf(filepath, "%s/", incdir);
+ fprintf(filepath, "%s", lf->lf_fname);
+ if (fclose(filepath) != 0) {
+ free(lf);
+ DWARF_SET_ERROR(dbg, error, DW_DLE_MEMORY);
+ return (DW_DLE_MEMORY);
}
}
Modified: projects/capsicum-test/contrib/elftoolchain/readelf/readelf.c
==============================================================================
--- projects/capsicum-test/contrib/elftoolchain/readelf/readelf.c Thu Mar 28 20:16:19 2019 (r345653)
+++ projects/capsicum-test/contrib/elftoolchain/readelf/readelf.c Thu Mar 28 20:17:14 2019 (r345654)
@@ -2741,6 +2741,7 @@ dump_flags(struct flag_desc *desc, uint64_t val)
}
if (val != 0)
printf(" unknown (0x%jx)", (uintmax_t)val);
+ printf("\n");
}
static struct flag_desc dt_flags[] = {
@@ -3524,7 +3525,6 @@ dump_notes_data(const char *name, uint32_t type, const
goto unknown;
printf(" Features:");
dump_flags(note_feature_ctl_flags, ubuf[0]);
- printf("\n");
return;
}
}
Modified: projects/capsicum-test/contrib/elftoolchain/strings/strings.c
==============================================================================
--- projects/capsicum-test/contrib/elftoolchain/strings/strings.c Thu Mar 28 20:16:19 2019 (r345653)
+++ projects/capsicum-test/contrib/elftoolchain/strings/strings.c Thu Mar 28 20:17:14 2019 (r345654)
@@ -84,7 +84,7 @@ static struct option strings_longopts[] = {
{ NULL, 0, NULL, 0 }
};
-long getcharacter(FILE *);
+int getcharacter(FILE *, long *);
int handle_file(const char *);
int handle_elf(const char *, FILE *);
int handle_binary(const char *, FILE *, size_t);
@@ -291,42 +291,43 @@ handle_elf(const char *name, FILE *pfile)
* Retrieves a character from input stream based on the encoding
* type requested.
*/
-long
-getcharacter(FILE *pfile)
+int
+getcharacter(FILE *pfile, long *rt)
{
- long rt;
int i, c;
char buf[4];
for(i = 0; i < encoding_size; i++) {
c = getc(pfile);
if (c == EOF)
- return (EOF);
+ return (-1);
buf[i] = c;
}
- rt = EOF;
switch (encoding) {
case ENCODING_7BIT:
case ENCODING_8BIT:
- rt = buf[0];
+ *rt = buf[0];
break;
case ENCODING_16BIT_BIG:
- rt = (buf[0] << 8) | buf[1];
+ *rt = (buf[0] << 8) | buf[1];
break;
case ENCODING_16BIT_LITTLE:
- rt = buf[0] | (buf[1] << 8);
- break;
+ *rt = buf[0] | (buf[1] << 8);
+ break;
case ENCODING_32BIT_BIG:
- rt = ((long) buf[0] << 24) | ((long) buf[1] << 16) |
+ *rt = ((long) buf[0] << 24) | ((long) buf[1] << 16) |
((long) buf[2] << 8) | buf[3];
break;
case ENCODING_32BIT_LITTLE:
- rt = buf[0] | ((long) buf[1] << 8) | ((long) buf[2] << 16) |
+ *rt = buf[0] | ((long) buf[1] << 8) | ((long) buf[2] << 16) |
((long) buf[3] << 24);
break;
+ default:
+ return (-1);
}
- return (rt);
+
+ return (0);
}
/*
@@ -357,8 +358,7 @@ find_strings(const char *name, FILE *pfile, off_t offs
start_off = cur_off;
memset(obuf, 0, min_len + 1);
for(i = 0; i < min_len; i++) {
- c = getcharacter(pfile);
- if (c == EOF)
+ if (getcharacter(pfile, &c) < 0)
goto _exit1;
if (PRINTABLE(c)) {
obuf[i] = c;
@@ -400,15 +400,16 @@ find_strings(const char *name, FILE *pfile, off_t offs
if ((offset + size) &&
(cur_off >= offset + size))
break;
- c = getcharacter(pfile);
- cur_off += encoding_size;
- if (!PRINTABLE(c) || c == EOF)
+ if (getcharacter(pfile, &c) < 0)
break;
+ cur_off += encoding_size;
if (encoding == ENCODING_8BIT &&
(uint8_t)c > 127) {
putchar(c);
continue;
}
+ if (!PRINTABLE(c))
+ break;
putchar(c);
}
putchar('\n');
Modified: projects/capsicum-test/contrib/libarchive/libarchive/archive_blake2sp_ref.c
==============================================================================
--- projects/capsicum-test/contrib/libarchive/libarchive/archive_blake2sp_ref.c Thu Mar 28 20:16:19 2019 (r345653)
+++ projects/capsicum-test/contrib/libarchive/libarchive/archive_blake2sp_ref.c Thu Mar 28 20:17:14 2019 (r345654)
@@ -89,7 +89,7 @@ int blake2sp_init( blake2sp_state *S, size_t outlen )
return -1;
for( i = 0; i < PARALLELISM_DEGREE; ++i )
- if( blake2sp_init_leaf( S->S[i], outlen, 0, i ) < 0 ) return -1;
+ if( blake2sp_init_leaf( S->S[i], outlen, 0, (uint32_t)i ) < 0 ) return -1;
S->R->last_node = 1;
S->S[PARALLELISM_DEGREE - 1]->last_node = 1;
@@ -112,7 +112,7 @@ int blake2sp_init_key( blake2sp_state *S, size_t outle
return -1;
for( i = 0; i < PARALLELISM_DEGREE; ++i )
- if( blake2sp_init_leaf( S->S[i], outlen, keylen, i ) < 0 ) return -1;
+ if( blake2sp_init_leaf( S->S[i], outlen, keylen, (uint32_t)i ) < 0 ) return -1;
S->R->last_node = 1;
S->S[PARALLELISM_DEGREE - 1]->last_node = 1;
@@ -230,7 +230,7 @@ int blake2sp( void *out, size_t outlen, const void *in
if( keylen > BLAKE2S_KEYBYTES ) return -1;
for( i = 0; i < PARALLELISM_DEGREE; ++i )
- if( blake2sp_init_leaf( S[i], outlen, keylen, i ) < 0 ) return -1;
+ if( blake2sp_init_leaf( S[i], outlen, keylen, (uint32_t)i ) < 0 ) return -1;
S[PARALLELISM_DEGREE - 1]->last_node = 1; /* mark last node */
Modified: projects/capsicum-test/contrib/libarchive/libarchive/archive_entry.c
==============================================================================
--- projects/capsicum-test/contrib/libarchive/libarchive/archive_entry.c Thu Mar 28 20:16:19 2019 (r345653)
+++ projects/capsicum-test/contrib/libarchive/libarchive/archive_entry.c Thu Mar 28 20:17:14 2019 (r345654)
@@ -1632,6 +1632,51 @@ _archive_entry_acl_text_l(struct archive_entry *entry,
* SUCH DAMAGE.
*/
+/*
+ * Supported file flags on FreeBSD and Mac OS:
+ * sappnd,sappend SF_APPEND
+ * arch,archived SF_ARCHIVED
+ * schg,schange,simmutable SF_IMMUTABLE
+ * sunlnk,sunlink SF_NOUNLINK (FreeBSD only)
+ * uappnd,uappend UF_APPEND
+ * compressed UF_COMPRESSED (Mac OS only)
+ * hidden,uhidden UF_HIDDEN
+ * uchg,uchange,uimmutable UF_IMMUTABLE
+ * nodump UF_NODUMP
+ * uunlnk,uunlink UF_NOUNLINK (FreeBSD only)
+ * offline,uoffline UF_OFFLINE (FreeBSD only)
+ * opaque UF_OPAQUE
+ * rdonly,urdonly,readonly UF_READONLY (FreeBSD only)
+ * reparse,ureparse UF_REPARSE (FreeBSD only)
+ * sparse,usparse UF_SPARSE (FreeBSD only)
+ * system,usystem UF_SYSTEM (FreeBSD only)
+ *
+ * See chflags(2) for more information
+ *
+ * Supported file attributes on Linux:
+ * a append only FS_APPEND_FL sappnd
+ * A no atime updates FS_NOATIME_FL atime
+ * c compress FS_COMPR_FL compress
+ * C no copy on write FS_NOCOW_FL cow
+ * d no dump FS_NODUMP_FL dump
+ * D synchronous directory updates FS_DIRSYNC_FL dirsync
+ * i immutable FS_IMMUTABLE_FL schg
+ * j data journalling FS_JOURNAL_DATA_FL journal
+ * P project hierarchy FS_PROJINHERIT_FL projinherit
+ * s secure deletion FS_SECRM_FL securedeletion
+ * S synchronous updates FS_SYNC_FL sync
+ * t no tail-merging FS_NOTAIL_FL tail
+ * T top of directory hierarchy FS_TOPDIR_FL topdir
+ * u undeletable FS_UNRM_FL undel
+ *
+ * See ioctl_iflags(2) for more information
+ *
+ * Equivalent file flags supported on FreeBSD / Mac OS and Linux:
+ * SF_APPEND FS_APPEND_FL sappnd
+ * SF_IMMUTABLE FS_IMMUTABLE_FL schg
+ * UF_NODUMP FS_NODUMP_FL nodump
+ */
+
static const struct flag {
const char *name;
const wchar_t *wname;
@@ -1640,190 +1685,149 @@ static const struct flag {
} flags[] = {
/* Preferred (shorter) names per flag first, all prefixed by "no" */
#ifdef SF_APPEND
- { "nosappnd", L"nosappnd", SF_APPEND, 0 },
- { "nosappend", L"nosappend", SF_APPEND, 0 },
+ { "nosappnd", L"nosappnd", SF_APPEND, 0},
+ { "nosappend", L"nosappend", SF_APPEND, 0},
#endif
#if defined(FS_APPEND_FL) /* 'a' */
- { "nosappnd", L"nosappnd", FS_APPEND_FL, 0 },
- { "nosappend", L"nosappend", FS_APPEND_FL, 0 },
+ { "nosappnd", L"nosappnd", FS_APPEND_FL, 0},
+ { "nosappend", L"nosappend", FS_APPEND_FL, 0},
#elif defined(EXT2_APPEND_FL) /* 'a' */
- { "nosappnd", L"nosappnd", EXT2_APPEND_FL, 0 },
- { "nosappend", L"nosappend", EXT2_APPEND_FL, 0 },
+ { "nosappnd", L"nosappnd", EXT2_APPEND_FL, 0},
+ { "nosappend", L"nosappend", EXT2_APPEND_FL, 0},
#endif
#ifdef SF_ARCHIVED
- { "noarch", L"noarch", SF_ARCHIVED, 0 },
- { "noarchived", L"noarchived", SF_ARCHIVED, 0 },
+ { "noarch", L"noarch", SF_ARCHIVED, 0},
+ { "noarchived", L"noarchived", SF_ARCHIVED, 0},
#endif
#ifdef SF_IMMUTABLE
- { "noschg", L"noschg", SF_IMMUTABLE, 0 },
- { "noschange", L"noschange", SF_IMMUTABLE, 0 },
- { "nosimmutable", L"nosimmutable", SF_IMMUTABLE, 0 },
+ { "noschg", L"noschg", SF_IMMUTABLE, 0},
+ { "noschange", L"noschange", SF_IMMUTABLE, 0},
+ { "nosimmutable", L"nosimmutable", SF_IMMUTABLE, 0},
#endif
#if defined(FS_IMMUTABLE_FL) /* 'i' */
- { "noschg", L"noschg", FS_IMMUTABLE_FL, 0 },
- { "noschange", L"noschange", FS_IMMUTABLE_FL, 0 },
- { "nosimmutable", L"nosimmutable", FS_IMMUTABLE_FL, 0 },
+ { "noschg", L"noschg", FS_IMMUTABLE_FL, 0},
+ { "noschange", L"noschange", FS_IMMUTABLE_FL, 0},
+ { "nosimmutable", L"nosimmutable", FS_IMMUTABLE_FL, 0},
#elif defined(EXT2_IMMUTABLE_FL) /* 'i' */
- { "noschg", L"noschg", EXT2_IMMUTABLE_FL, 0 },
- { "noschange", L"noschange", EXT2_IMMUTABLE_FL, 0 },
- { "nosimmutable", L"nosimmutable", EXT2_IMMUTABLE_FL, 0 },
+ { "noschg", L"noschg", EXT2_IMMUTABLE_FL, 0},
+ { "noschange", L"noschange", EXT2_IMMUTABLE_FL, 0},
+ { "nosimmutable", L"nosimmutable", EXT2_IMMUTABLE_FL, 0},
#endif
#ifdef SF_NOUNLINK
- { "nosunlnk", L"nosunlnk", SF_NOUNLINK, 0 },
- { "nosunlink", L"nosunlink", SF_NOUNLINK, 0 },
+ { "nosunlnk", L"nosunlnk", SF_NOUNLINK, 0},
+ { "nosunlink", L"nosunlink", SF_NOUNLINK, 0},
#endif
-#ifdef SF_SNAPSHOT
- { "nosnapshot", L"nosnapshot", SF_SNAPSHOT, 0 },
-#endif
#ifdef UF_APPEND
- { "nouappnd", L"nouappnd", UF_APPEND, 0 },
- { "nouappend", L"nouappend", UF_APPEND, 0 },
+ { "nouappnd", L"nouappnd", UF_APPEND, 0},
+ { "nouappend", L"nouappend", UF_APPEND, 0},
#endif
#ifdef UF_IMMUTABLE
- { "nouchg", L"nouchg", UF_IMMUTABLE, 0 },
- { "nouchange", L"nouchange", UF_IMMUTABLE, 0 },
- { "nouimmutable", L"nouimmutable", UF_IMMUTABLE, 0 },
+ { "nouchg", L"nouchg", UF_IMMUTABLE, 0},
+ { "nouchange", L"nouchange", UF_IMMUTABLE, 0},
+ { "nouimmutable", L"nouimmutable", UF_IMMUTABLE, 0},
#endif
#ifdef UF_NODUMP
{ "nodump", L"nodump", 0, UF_NODUMP},
#endif
#if defined(FS_NODUMP_FL) /* 'd' */
{ "nodump", L"nodump", 0, FS_NODUMP_FL},
-#elif defined(EXT2_NODUMP_FL) /* 'd' */
+#elif defined(EXT2_NODUMP_FL)
{ "nodump", L"nodump", 0, EXT2_NODUMP_FL},
#endif
#ifdef UF_OPAQUE
- { "noopaque", L"noopaque", UF_OPAQUE, 0 },
+ { "noopaque", L"noopaque", UF_OPAQUE, 0},
#endif
#ifdef UF_NOUNLINK
- { "nouunlnk", L"nouunlnk", UF_NOUNLINK, 0 },
- { "nouunlink", L"nouunlink", UF_NOUNLINK, 0 },
+ { "nouunlnk", L"nouunlnk", UF_NOUNLINK, 0},
+ { "nouunlink", L"nouunlink", UF_NOUNLINK, 0},
#endif
#ifdef UF_COMPRESSED
- { "nocompressed",L"nocompressed", UF_COMPRESSED, 0 },
+ /* Mac OS */
+ { "nocompressed", L"nocompressed", UF_COMPRESSED, 0},
#endif
#ifdef UF_HIDDEN
- { "nohidden", L"nohidden", UF_HIDDEN, 0 },
+ { "nohidden", L"nohidden", UF_HIDDEN, 0},
+ { "nouhidden", L"nouhidden", UF_HIDDEN, 0},
#endif
-#if defined(FS_UNRM_FL)
- { "nouunlink", L"nouunlink", FS_UNRM_FL, 0},
-#elif defined(EXT2_UNRM_FL)
- { "nouunlink", L"nouunlink", EXT2_UNRM_FL, 0},
+#ifdef UF_OFFLINE
+ { "nooffline", L"nooffline", UF_OFFLINE, 0},
+ { "nouoffline", L"nouoffline", UF_OFFLINE, 0},
#endif
-
-#if defined(FS_BTREE_FL)
- { "nobtree", L"nobtree", FS_BTREE_FL, 0 },
-#elif defined(EXT2_BTREE_FL)
- { "nobtree", L"nobtree", EXT2_BTREE_FL, 0 },
+#ifdef UF_READONLY
+ { "nordonly", L"nordonly", UF_READONLY, 0},
+ { "nourdonly", L"nourdonly", UF_READONLY, 0},
+ { "noreadonly", L"noreadonly", UF_READONLY, 0},
#endif
-
-#if defined(FS_ECOMPR_FL)
- { "nocomperr", L"nocomperr", FS_ECOMPR_FL, 0 },
-#elif defined(EXT2_ECOMPR_FL)
- { "nocomperr", L"nocomperr", EXT2_ECOMPR_FL, 0 },
+#ifdef UF_SPARSE
+ { "nosparse", L"nosparse", UF_SPARSE, 0},
+ { "nousparse", L"nousparse", UF_SPARSE, 0},
#endif
-
-#if defined(FS_COMPR_FL) /* 'c' */
- { "nocompress", L"nocompress", FS_COMPR_FL, 0 },
-#elif defined(EXT2_COMPR_FL) /* 'c' */
- { "nocompress", L"nocompress", EXT2_COMPR_FL, 0 },
+#ifdef UF_REPARSE
+ { "noreparse", L"noreparse", UF_REPARSE, 0},
+ { "noureparse", L"noureparse", UF_REPARSE, 0},
#endif
-
-#if defined(FS_NOATIME_FL) /* 'A' */
- { "noatime", L"noatime", 0, FS_NOATIME_FL},
-#elif defined(EXT2_NOATIME_FL) /* 'A' */
- { "noatime", L"noatime", 0, EXT2_NOATIME_FL},
+#ifdef UF_SYSTEM
+ { "nosystem", L"nosystem", UF_SYSTEM, 0},
+ { "nousystem", L"nousystem", UF_SYSTEM, 0},
#endif
+#if defined(FS_UNRM_FL) /* 'u' */
+ { "noundel", L"noundel", FS_UNRM_FL, 0},
+#elif defined(EXT2_UNRM_FL)
+ { "noundel", L"noundel", EXT2_UNRM_FL, 0},
+#endif
-#if defined(FS_DIRTY_FL)
- { "nocompdirty",L"nocompdirty", FS_DIRTY_FL, 0},
-#elif defined(EXT2_DIRTY_FL)
- { "nocompdirty",L"nocompdirty", EXT2_DIRTY_FL, 0},
+#if defined(FS_COMPR_FL) /* 'c' */
+ { "nocompress", L"nocompress", FS_COMPR_FL, 0},
+#elif defined(EXT2_COMPR_FL)
+ { "nocompress", L"nocompress", EXT2_COMPR_FL, 0},
#endif
-#if defined(FS_COMPRBLK_FL)
-#if defined(FS_NOCOMPR_FL)
- { "nocomprblk", L"nocomprblk", FS_COMPRBLK_FL, FS_NOCOMPR_FL},
-#else
- { "nocomprblk", L"nocomprblk", FS_COMPRBLK_FL, 0},
+#if defined(FS_NOATIME_FL) /* 'A' */
+ { "noatime", L"noatime", 0, FS_NOATIME_FL},
+#elif defined(EXT2_NOATIME_FL)
+ { "noatime", L"noatime", 0, EXT2_NOATIME_FL},
#endif
-#elif defined(EXT2_COMPRBLK_FL)
-#if defined(EXT2_NOCOMPR_FL)
- { "nocomprblk", L"nocomprblk", EXT2_COMPRBLK_FL, EXT2_NOCOMPR_FL},
-#else
- { "nocomprblk", L"nocomprblk", EXT2_COMPRBLK_FL, 0},
-#endif
-#endif
-#if defined(FS_DIRSYNC_FL)
- { "nodirsync", L"nodirsync", FS_DIRSYNC_FL, 0},
+#if defined(FS_DIRSYNC_FL) /* 'D' */
+ { "nodirsync", L"nodirsync", FS_DIRSYNC_FL, 0},
#elif defined(EXT2_DIRSYNC_FL)
- { "nodirsync", L"nodirsync", EXT2_DIRSYNC_FL, 0},
+ { "nodirsync", L"nodirsync", EXT2_DIRSYNC_FL, 0},
#endif
-#if defined(FS_INDEX_FL)
- { "nohashidx", L"nohashidx", FS_INDEX_FL, 0},
-#elif defined(EXT2_INDEX_FL)
- { "nohashidx", L"nohashidx", EXT2_INDEX_FL, 0},
-#endif
-#if defined(FS_IMAGIC_FL)
- { "noimagic", L"noimagic", FS_IMAGIC_FL, 0},
-#elif defined(EXT2_IMAGIC_FL)
- { "noimagic", L"noimagic", EXT2_IMAGIC_FL, 0},
-#endif
-#if defined(FS_JOURNAL_DATA_FL)
- { "nojournal", L"nojournal", FS_JOURNAL_DATA_FL, 0},
+#if defined(FS_JOURNAL_DATA_FL) /* 'j' */
+ { "nojournal-data",L"nojournal-data", FS_JOURNAL_DATA_FL, 0},
+ { "nojournal", L"nojournal", FS_JOURNAL_DATA_FL, 0},
#elif defined(EXT3_JOURNAL_DATA_FL)
- { "nojournal", L"nojournal", EXT3_JOURNAL_DATA_FL, 0},
+ { "nojournal-data",L"nojournal-data", EXT3_JOURNAL_DATA_FL, 0},
+ { "nojournal", L"nojournal", EXT3_JOURNAL_DATA_FL, 0},
#endif
-#if defined(FS_SECRM_FL)
- { "nosecuredeletion",L"nosecuredeletion",FS_SECRM_FL, 0},
+#if defined(FS_SECRM_FL) /* 's' */
+ { "nosecdel", L"nosecdel", FS_SECRM_FL, 0},
+ { "nosecuredeletion",L"nosecuredeletion",FS_SECRM_FL, 0},
#elif defined(EXT2_SECRM_FL)
- { "nosecuredeletion",L"nosecuredeletion",EXT2_SECRM_FL, 0},
+ { "nosecdel", L"nosecdel", EXT2_SECRM_FL, 0},
+ { "nosecuredeletion",L"nosecuredeletion",EXT2_SECRM_FL, 0},
#endif
-#if defined(FS_SYNC_FL)
- { "nosync", L"nosync", FS_SYNC_FL, 0},
+#if defined(FS_SYNC_FL) /* 'S' */
+ { "nosync", L"nosync", FS_SYNC_FL, 0},
#elif defined(EXT2_SYNC_FL)
- { "nosync", L"nosync", EXT2_SYNC_FL, 0},
+ { "nosync", L"nosync", EXT2_SYNC_FL, 0},
#endif
-#if defined(FS_NOTAIL_FL)
- { "notail", L"notail", 0, FS_NOTAIL_FL},
+#if defined(FS_NOTAIL_FL) /* 't' */
+ { "notail", L"notail", 0, FS_NOTAIL_FL},
#elif defined(EXT2_NOTAIL_FL)
- { "notail", L"notail", 0, EXT2_NOTAIL_FL},
+ { "notail", L"notail", 0, EXT2_NOTAIL_FL},
#endif
-#if defined(FS_TOPDIR_FL)
- { "notopdir", L"notopdir", FS_TOPDIR_FL, 0},
+#if defined(FS_TOPDIR_FL) /* 'T' */
+ { "notopdir", L"notopdir", FS_TOPDIR_FL, 0},
#elif defined(EXT2_TOPDIR_FL)
- { "notopdir", L"notopdir", EXT2_TOPDIR_FL, 0},
+ { "notopdir", L"notopdir", EXT2_TOPDIR_FL, 0},
#endif
-#ifdef FS_ENCRYPT_FL
- { "noencrypt", L"noencrypt", FS_ENCRYPT_FL, 0},
+#ifdef FS_NOCOW_FL /* 'C' */
+ { "nocow", L"nocow", 0, FS_NOCOW_FL},
#endif
-#ifdef FS_HUGE_FILE_FL
- { "nohugefile", L"nohugefile", FS_HUGE_FILE_FL, 0},
+#ifdef FS_PROJINHERIT_FL /* 'P' */
+ { "noprojinherit",L"noprojinherit", FS_PROJINHERIT_FL, 0},
#endif
-#ifdef FS_EXTENT_FL
- { "noextent", L"noextent", FS_EXTENT_FL, 0},
-#endif
-#ifdef FS_EA_INODE_FL
- { "noeainode", L"noeainode", FS_EA_INODE_FL, 0},
-#endif
-#ifdef FS_EOFBLOCKS_FL
- { "noeofblocks",L"noeofblocks", FS_EOFBLOCKS_FL, 0},
-#endif
-#ifdef FS_NOCOW_FL
- { "nocow", L"nocow", FS_NOCOW_FL, 0},
-#endif
-#ifdef FS_INLINE_DATA_FL
- { "noinlinedata",L"noinlinedata", FS_INLINE_DATA_FL, 0},
-#endif
-#ifdef FS_PROJINHERIT_FL
- { "noprojinherit",L"noprojinherit", FS_PROJINHERIT_FL, 0},
-#endif
-#if defined(FS_RESERVED_FL)
- { "noreserved", L"noreserved", FS_RESERVED_FL, 0},
-#elif defined(EXT2_RESERVED_FL)
- { "noreserved", L"noreserved", EXT2_RESERVED_FL, 0},
-#endif
- { NULL, NULL, 0, 0 }
+ { NULL, NULL, 0, 0}
};
/*
Modified: projects/capsicum-test/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c
==============================================================================
--- projects/capsicum-test/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c Thu Mar 28 20:16:19 2019 (r345653)
+++ projects/capsicum-test/contrib/libarchive/libarchive/archive_read_disk_entry_from_file.c Thu Mar 28 20:17:14 2019 (r345654)
@@ -163,6 +163,9 @@ archive_read_disk_entry_from_file(struct archive *_a,
int initial_fd = fd;
int r, r1;
+ archive_check_magic(_a, ARCHIVE_READ_DISK_MAGIC, ARCHIVE_STATE_ANY,
+ "archive_read_disk_entry_from_file");
+
archive_clear_error(_a);
path = archive_entry_sourcepath(entry);
if (path == NULL)
Modified: projects/capsicum-test/contrib/libarchive/libarchive/archive_read_support_format_rar5.c
==============================================================================
--- projects/capsicum-test/contrib/libarchive/libarchive/archive_read_support_format_rar5.c Thu Mar 28 20:16:19 2019 (r345653)
+++ projects/capsicum-test/contrib/libarchive/libarchive/archive_read_support_format_rar5.c Thu Mar 28 20:17:14 2019 (r345654)
@@ -517,15 +517,16 @@ static int run_e8e9_filter(struct rar5* rar, struct fi
const uint32_t file_size = 0x1000000;
ssize_t i;
+ const int mask = (int)rar->cstate.window_mask;
circular_memcpy(rar->cstate.filtered_buf,
rar->cstate.window_buf,
- rar->cstate.window_mask,
+ mask,
rar->cstate.solid_offset + flt->block_start,
rar->cstate.solid_offset + flt->block_start + flt->block_length);
for(i = 0; i < flt->block_length - 4;) {
uint8_t b = rar->cstate.window_buf[(rar->cstate.solid_offset +
- flt->block_start + i++) & rar->cstate.window_mask];
+ flt->block_start + i++) & mask];
/* 0xE8 = x86's call <relative_addr_uint32> (function call)
* 0xE9 = x86's jmp <relative_addr_uint32> (unconditional jump) */
@@ -534,17 +535,17 @@ static int run_e8e9_filter(struct rar5* rar, struct fi
uint32_t addr;
uint32_t offset = (i + flt->block_start) % file_size;
- addr = read_filter_data(rar, (rar->cstate.solid_offset +
+ addr = read_filter_data(rar, (uint32_t)(rar->cstate.solid_offset +
flt->block_start + i) & rar->cstate.window_mask);
if(addr & 0x80000000) {
if(((addr + offset) & 0x80000000) == 0) {
- write_filter_data(rar, i, addr + file_size);
+ write_filter_data(rar, (uint32_t)i, addr + file_size);
}
} else {
if((addr - file_size) & 0x80000000) {
uint32_t naddr = addr - offset;
- write_filter_data(rar, i, naddr);
+ write_filter_data(rar, (uint32_t)i, naddr);
}
}
@@ -558,11 +559,11 @@ static int run_e8e9_filter(struct rar5* rar, struct fi
static int run_arm_filter(struct rar5* rar, struct filter_info* flt) {
ssize_t i = 0;
uint32_t offset;
- const int mask = rar->cstate.window_mask;
+ const int mask = (int)rar->cstate.window_mask;
circular_memcpy(rar->cstate.filtered_buf,
rar->cstate.window_buf,
- rar->cstate.window_mask,
+ mask,
rar->cstate.solid_offset + flt->block_start,
rar->cstate.solid_offset + flt->block_start + flt->block_length);
@@ -577,7 +578,7 @@ static int run_arm_filter(struct rar5* rar, struct fil
offset -= (uint32_t) ((i + flt->block_start) / 4);
offset = (offset & 0x00ffffff) | 0xeb000000;
- write_filter_data(rar, i, offset);
+ write_filter_data(rar, (uint32_t)i, offset);
}
}
@@ -643,7 +644,7 @@ static int run_filter(struct archive_read* a, struct f
static void push_data(struct archive_read* a, struct rar5* rar,
const uint8_t* buf, int64_t idx_begin, int64_t idx_end)
{
- const int wmask = rar->cstate.window_mask;
+ const int wmask = (int)rar->cstate.window_mask;
const ssize_t solid_write_ptr = (rar->cstate.solid_offset +
rar->cstate.last_write_ptr) & wmask;
@@ -1716,8 +1717,8 @@ static int process_base_block(struct archive_read* a,
rar->generic.split_after = (header_flags & HFL_SPLIT_AFTER) > 0;
rar->generic.split_before = (header_flags & HFL_SPLIT_BEFORE) > 0;
- rar->generic.size = hdr_size;
- rar->generic.last_header_id = header_id;
+ rar->generic.size = (int)hdr_size;
+ rar->generic.last_header_id = (int)header_id;
rar->main.endarc = 0;
/* Those are possible header ids in RARv5. */
@@ -1933,7 +1934,7 @@ static int create_decode_tables(uint8_t* bit_length,
}
}
- quick_data_size = 1 << table->quick_bits;
+ quick_data_size = (int64_t)1 << table->quick_bits;
cur_len = 1;
for(code = 0; code < quick_data_size; code++) {
int bit_field = code << (16 - table->quick_bits);
@@ -2364,7 +2365,7 @@ static int decode_code_length(struct rar5* rar, const
static int copy_string(struct archive_read* a, int len, int dist) {
struct rar5* rar = get_context(a);
- const int cmask = rar->cstate.window_mask;
+ const int cmask = (int)rar->cstate.window_mask;
const int64_t write_ptr = rar->cstate.write_ptr + rar->cstate.solid_offset;
int i;
@@ -2390,7 +2391,7 @@ static int do_uncompress_block(struct archive_read* a,
uint16_t num;
int ret;
- const int cmask = rar->cstate.window_mask;
+ const int cmask = (int)rar->cstate.window_mask;
const struct compressed_block_header* hdr = &rar->last_block_hdr;
const uint8_t bit_size = 1 + bf_bit_size(hdr);
Modified: projects/capsicum-test/contrib/libarchive/libarchive/archive_read_support_format_zip.c
==============================================================================
--- projects/capsicum-test/contrib/libarchive/libarchive/archive_read_support_format_zip.c Thu Mar 28 20:16:19 2019 (r345653)
+++ projects/capsicum-test/contrib/libarchive/libarchive/archive_read_support_format_zip.c Thu Mar 28 20:17:14 2019 (r345654)
@@ -194,6 +194,7 @@ struct zip {
ssize_t zipx_ppmd_read_compressed;
CPpmd8 ppmd8;
char ppmd8_valid;
+ char ppmd8_stream_failed;
struct archive_string_conv *sconv;
struct archive_string_conv *sconv_default;
@@ -254,9 +255,15 @@ ppmd_read(void* p) {
/* Get the handle to current decompression context. */
struct archive_read *a = ((IByteIn*)p)->a;
struct zip *zip = (struct zip*) a->format->data;
+ ssize_t bytes_avail = 0;
/* Fetch next byte. */
- const uint8_t* data = __archive_read_ahead(a, 1, NULL);
+ const uint8_t* data = __archive_read_ahead(a, 1, &bytes_avail);
+ if(bytes_avail < 1) {
+ zip->ppmd8_stream_failed = 1;
+ return 0;
+ }
+
__archive_read_consume(a, 1);
/* Increment the counter. */
@@ -1750,6 +1757,7 @@ zipx_ppmd8_init(struct archive_read *a, struct zip *zi
/* Create a new decompression context. */
__archive_ppmd8_functions.Ppmd8_Construct(&zip->ppmd8);
+ zip->ppmd8_stream_failed = 0;
/* Setup function pointers required by Ppmd8 decompressor. The
* 'ppmd_read' function will feed new bytes to the decompressor,
@@ -1869,6 +1877,14 @@ zip_read_data_zipx_ppmd(struct archive_read *a, const
break;
}
+ /* This field is set by ppmd_read() when there was no more data
+ * to be read. */
+ if(zip->ppmd8_stream_failed) {
+ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
+ "Truncated PPMd8 file body");
+ return (ARCHIVE_FATAL);
+ }
+
zip->uncompressed_buffer[consumed_bytes] = (uint8_t) sym;
++consumed_bytes;
} while(consumed_bytes < zip->uncompressed_buffer_size);
@@ -1902,7 +1918,7 @@ zipx_bzip2_init(struct archive_read *a, struct zip *zi
{
int r;
- /* Deallocate already existing BZ2 decompression context if it
+ /* Deallocate already existing BZ2 decompression context if it
* exists. */
if(zip->bzstream_valid) {
BZ2_bzDecompressEnd(&zip->bzstream);
@@ -1968,6 +1984,15 @@ zip_read_data_zipx_bzip2(struct archive_read *a, const
}
in_bytes = zipmin(zip->entry_bytes_remaining, bytes_avail);
+ if(in_bytes < 1) {
+ /* libbz2 doesn't complain when caller feeds avail_in == 0. It will
+ * actually return success in this case, which is undesirable. This is
+ * why we need to make this check manually. */
+
+ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
+ "Truncated bzip2 file body");
+ return (ARCHIVE_FATAL);
+ }
/* Setup buffer boundaries. */
zip->bzstream.next_in = (char*)(uintptr_t) compressed_buff;
Modified: projects/capsicum-test/contrib/libarchive/libarchive/archive_string.c
==============================================================================
--- projects/capsicum-test/contrib/libarchive/libarchive/archive_string.c Thu Mar 28 20:16:19 2019 (r345653)
+++ projects/capsicum-test/contrib/libarchive/libarchive/archive_string.c Thu Mar 28 20:17:14 2019 (r345654)
@@ -1512,8 +1512,10 @@ get_current_codepage(void)
p = strrchr(locale, '.');
if (p == NULL)
return (GetACP());
+ if (strcmp(p+1, "utf8") == 0)
+ return CP_UTF8;
cp = my_atoi(p+1);
- if (cp <= 0)
+ if ((int)cp <= 0)
return (GetACP());
return (cp);
}
@@ -4050,6 +4052,7 @@ archive_mstring_copy_utf8(struct archive_mstring *aes,
{
if (utf8 == NULL) {
aes->aes_set = 0;
+ return (0);
}
aes->aes_set = AES_SET_UTF8;
archive_string_empty(&(aes->aes_mbs));
@@ -4064,6 +4067,7 @@ archive_mstring_copy_wcs_len(struct archive_mstring *a
{
if (wcs == NULL) {
aes->aes_set = 0;
+ return (0);
}
aes->aes_set = AES_SET_WCS; /* Only WCS form set. */
archive_string_empty(&(aes->aes_mbs));
Modified: projects/capsicum-test/contrib/libarchive/libarchive/archive_write_disk_posix.c
==============================================================================
--- projects/capsicum-test/contrib/libarchive/libarchive/archive_write_disk_posix.c Thu Mar 28 20:16:19 2019 (r345653)
+++ projects/capsicum-test/contrib/libarchive/libarchive/archive_write_disk_posix.c Thu Mar 28 20:17:14 2019 (r345654)
@@ -2588,8 +2588,11 @@ check_symlinks_fsobj(char *path, int *a_eno, struct ar
*/
restore_pwd = open(".", O_RDONLY | O_BINARY | O_CLOEXEC);
__archive_ensure_cloexec_flag(restore_pwd);
- if (restore_pwd < 0)
+ if (restore_pwd < 0) {
+ fsobj_error(a_eno, a_estr, errno,
+ "Could not open ", path);
return (ARCHIVE_FATAL);
+ }
head = path;
tail = path;
last = 0;
@@ -3128,12 +3131,14 @@ create_dir(struct archive_write_disk *a, char *path)
static int
set_ownership(struct archive_write_disk *a)
{
-#ifndef __CYGWIN__
-/* unfortunately, on win32 there is no 'root' user with uid 0,
- so we just have to try the chown and see if it works */
-
- /* If we know we can't change it, don't bother trying. */
- if (a->user_uid != 0 && a->user_uid != a->uid) {
+#if !defined(__CYGWIN__) && !defined(__linux__)
+/*
+ * On Linux, a process may have the CAP_CHOWN capability.
+ * On Windows there is no 'root' user with uid 0.
+ * Elsewhere we can skip calling chown if we are not root and the desired
+ * user id does not match the current user.
+ */
+ if (a->user_uid != 0 && a->user_uid != a->uid) {
archive_set_error(&a->archive, errno,
"Can't set UID=%jd", (intmax_t)a->uid);
return (ARCHIVE_WARN);
@@ -3500,9 +3505,7 @@ set_fflags(struct archive_write_disk *a)
struct fixup_entry *le;
unsigned long set, clear;
int r;
- int critical_flags;
mode_t mode = archive_entry_mode(a->entry);
-
/*
* Make 'critical_flags' hold all file flags that can't be
* immediately restored. For example, on BSD systems,
@@ -3518,33 +3521,33 @@ set_fflags(struct archive_write_disk *a)
* other programs that might try to muck with files as they're
* being restored.
*/
- /* Hopefully, the compiler will optimize this mess into a constant. */
- critical_flags = 0;
+ const int critical_flags = 0
#ifdef SF_IMMUTABLE
- critical_flags |= SF_IMMUTABLE;
+ | SF_IMMUTABLE
#endif
#ifdef UF_IMMUTABLE
- critical_flags |= UF_IMMUTABLE;
+ | UF_IMMUTABLE
#endif
#ifdef SF_APPEND
- critical_flags |= SF_APPEND;
+ | SF_APPEND
#endif
#ifdef UF_APPEND
- critical_flags |= UF_APPEND;
+ | UF_APPEND
#endif
#if defined(FS_APPEND_FL)
- critical_flags |= FS_APPEND_FL;
+ | FS_APPEND_FL
#elif defined(EXT2_APPEND_FL)
- critical_flags |= EXT2_APPEND_FL;
+ | EXT2_APPEND_FL
#endif
#if defined(FS_IMMUTABLE_FL)
- critical_flags |= FS_IMMUTABLE_FL;
+ | FS_IMMUTABLE_FL
#elif defined(EXT2_IMMUTABLE_FL)
- critical_flags |= EXT2_IMMUTABLE_FL;
+ | EXT2_IMMUTABLE_FL
#endif
#ifdef FS_JOURNAL_DATA_FL
- critical_flags |= FS_JOURNAL_DATA_FL;
+ | FS_JOURNAL_DATA_FL
#endif
+ ;
if (a->todo & TODO_FFLAGS) {
archive_entry_fflags(a->entry, &set, &clear);
@@ -3575,29 +3578,27 @@ set_fflags(struct archive_write_disk *a)
static int
clear_nochange_fflags(struct archive_write_disk *a)
{
- int nochange_flags;
mode_t mode = archive_entry_mode(a->entry);
-
- /* Hopefully, the compiler will optimize this mess into a constant. */
- nochange_flags = 0;
+ const int nochange_flags = 0
#ifdef SF_IMMUTABLE
- nochange_flags |= SF_IMMUTABLE;
+ | SF_IMMUTABLE
#endif
#ifdef UF_IMMUTABLE
- nochange_flags |= UF_IMMUTABLE;
+ | UF_IMMUTABLE
#endif
#ifdef SF_APPEND
- nochange_flags |= SF_APPEND;
+ | SF_APPEND
#endif
#ifdef UF_APPEND
- nochange_flags |= UF_APPEND;
+ | UF_APPEND
#endif
#ifdef EXT2_APPEND_FL
- nochange_flags |= EXT2_APPEND_FL;
+ | EXT2_APPEND_FL
#endif
#ifdef EXT2_IMMUTABLE_FL
- nochange_flags |= EXT2_IMMUTABLE_FL;
+ | EXT2_IMMUTABLE_FL
#endif
+ ;
return (set_fflags_platform(a, a->fd, a->name, mode, 0,
nochange_flags));
@@ -3613,8 +3614,22 @@ set_fflags_platform(struct archive_write_disk *a, int
mode_t mode, unsigned long set, unsigned long clear)
{
int r;
-
+ const int sf_mask = 0
+#ifdef SF_APPEND
+ | SF_APPEND
+#endif
+#ifdef SF_ARCHIVED
+ | SF_ARCHIVED
+#endif
+#ifdef SF_IMMUTABLE
+ | SF_IMMUTABLE
+#endif
+#ifdef SF_NOUNLINK
+ | SF_NOUNLINK
+#endif
+ ;
(void)mode; /* UNUSED */
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-projects
mailing list