From owner-svn-src-projects@FreeBSD.ORG Tue Aug 30 16:52:26 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BC10B106566B; Tue, 30 Aug 2011 16:52:26 +0000 (UTC) (envelope-from mdf@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A7C4C8FC13; Tue, 30 Aug 2011 16:52:26 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p7UGqQht059429; Tue, 30 Aug 2011 16:52:26 GMT (envelope-from mdf@svn.freebsd.org) Received: (from mdf@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p7UGqQhB059413; Tue, 30 Aug 2011 16:52:26 GMT (envelope-from mdf@svn.freebsd.org) Message-Id: <201108301652.p7UGqQhB059413@svn.freebsd.org> From: Matthew D Fleming Date: Tue, 30 Aug 2011 16:52:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225267 - in projects/ino64: . bin/ed contrib/top etc etc/rc.d gnu/usr.bin/gdb/arch/arm lib/libarchive lib/libarchive/test lib/libbsnmp/libbsnmp lib/libc/sys lib/libcam lib/libdwarf lib... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Aug 2011 16:52:26 -0000 Author: mdf Date: Tue Aug 30 16:52:25 2011 New Revision: 225267 URL: http://svn.freebsd.org/changeset/base/225267 Log: IFC @ r225266. Added: projects/ino64/lib/libarchive/test/test_read_format_iso_2.iso.Z.uu - copied unchanged from r225266, head/lib/libarchive/test/test_read_format_iso_2.iso.Z.uu projects/ino64/libexec/rtld-elf/rtld_printf.c - copied unchanged from r225266, head/libexec/rtld-elf/rtld_printf.c projects/ino64/libexec/rtld-elf/rtld_printf.h - copied unchanged from r225266, head/libexec/rtld-elf/rtld_printf.h Modified: projects/ino64/ObsoleteFiles.inc projects/ino64/UPDATING projects/ino64/bin/ed/buf.c projects/ino64/etc/motd projects/ino64/etc/rc.d/Makefile projects/ino64/gnu/usr.bin/gdb/arch/arm/armfbsd-nat.c projects/ino64/lib/libarchive/archive_read_support_format_iso9660.c projects/ino64/lib/libarchive/test/test_read_format_iso_gz.c projects/ino64/lib/libarchive/test/test_read_format_isojoliet_bz2.c projects/ino64/lib/libarchive/test/test_read_format_isojoliet_long.c projects/ino64/lib/libarchive/test/test_read_format_isojoliet_rr.c projects/ino64/lib/libarchive/test/test_read_format_isorr_bz2.c projects/ino64/lib/libarchive/test/test_read_format_isorr_new_bz2.c projects/ino64/lib/libarchive/test/test_read_format_isozisofs_bz2.c projects/ino64/lib/libbsnmp/libbsnmp/Makefile projects/ino64/lib/libc/sys/sigwait.2 projects/ino64/lib/libc/sys/sigwaitinfo.2 projects/ino64/lib/libcam/Makefile projects/ino64/lib/libdwarf/Makefile projects/ino64/lib/libopie/Makefile projects/ino64/lib/libpcap/Makefile projects/ino64/lib/librtld_db/Makefile projects/ino64/lib/libtacplus/Makefile projects/ino64/lib/libufs/Makefile projects/ino64/lib/libusb/libusb.3 projects/ino64/libexec/rtld-elf/Makefile projects/ino64/libexec/rtld-elf/debug.c projects/ino64/libexec/rtld-elf/malloc.c projects/ino64/libexec/rtld-elf/rtld.c projects/ino64/libexec/rtld-elf/rtld.h projects/ino64/libexec/rtld-elf/rtld_lock.c projects/ino64/libexec/rtld-elf/xmalloc.c projects/ino64/release/doc/en_US.ISO8859-1/hardware/article.sgml projects/ino64/release/doc/share/misc/dev.archlist.txt projects/ino64/share/man/man4/Makefile projects/ino64/share/man/man4/ath.4 projects/ino64/share/man/man4/ath_hal.4 projects/ino64/share/man/man4/puc.4 projects/ino64/share/man/man4/vxge.4 projects/ino64/share/man/man9/DRIVER_MODULE.9 projects/ino64/share/man/man9/Makefile projects/ino64/share/man/man9/selrecord.9 projects/ino64/sys/amd64/amd64/minidump_machdep.c projects/ino64/sys/amd64/conf/GENERIC projects/ino64/sys/amd64/conf/NOTES projects/ino64/sys/arm/at91/uart_dev_at91usart.c projects/ino64/sys/boot/forth/loader.conf projects/ino64/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c projects/ino64/sys/conf/newvers.sh projects/ino64/sys/conf/options projects/ino64/sys/conf/options.amd64 projects/ino64/sys/contrib/pf/net/pf.c projects/ino64/sys/ddb/db_break.c projects/ino64/sys/dev/ahci/ahci.c projects/ino64/sys/dev/alc/if_alc.c projects/ino64/sys/dev/ath/ath_hal/ar5416/ar5416_beacon.c projects/ino64/sys/dev/ath/ath_hal/ar5416/ar5416reg.h projects/ino64/sys/dev/ath/if_ath.c projects/ino64/sys/dev/cfe/cfe_console.c projects/ino64/sys/dev/dcons/dcons_os.c projects/ino64/sys/dev/ofw/ofw_console.c projects/ino64/sys/dev/sio/sio.c projects/ino64/sys/dev/syscons/syscons.c projects/ino64/sys/dev/syscons/syscons.h projects/ino64/sys/dev/uart/uart_core.c projects/ino64/sys/i386/conf/GENERIC projects/ino64/sys/kern/kern_event.c projects/ino64/sys/kern/kern_jail.c projects/ino64/sys/kern/sched_4bsd.c projects/ino64/sys/kern/sched_ule.c projects/ino64/sys/kern/subr_kdb.c projects/ino64/sys/kern/sys_generic.c projects/ino64/sys/kern/sys_pipe.c projects/ino64/sys/kern/tty.c projects/ino64/sys/kern/tty_pts.c projects/ino64/sys/kern/uipc_mqueue.c projects/ino64/sys/kern/uipc_sockbuf.c projects/ino64/sys/kern/uipc_socket.c projects/ino64/sys/kern/vfs_subr.c projects/ino64/sys/kern/vfs_vnops.c projects/ino64/sys/modules/dcons/Makefile projects/ino64/sys/modules/sio/Makefile projects/ino64/sys/net/bpf.c projects/ino64/sys/net/if_bridge.c projects/ino64/sys/net/if_ethersubr.c projects/ino64/sys/net/if_tap.c projects/ino64/sys/net/if_tun.c projects/ino64/sys/net/radix_mpath.c projects/ino64/sys/net80211/ieee80211_output.c projects/ino64/sys/netinet/in.c projects/ino64/sys/netinet/tcp_input.c projects/ino64/sys/netinet/tcp_output.c projects/ino64/sys/netinet6/mld6.c projects/ino64/sys/pc98/cbus/sio.c projects/ino64/sys/powerpc/mambo/mambo_console.c projects/ino64/sys/rpc/clnt_dg.c projects/ino64/sys/security/audit/audit_pipe.c projects/ino64/sys/sparc64/sbus/sbus.c projects/ino64/sys/sys/kdb.h projects/ino64/sys/sys/param.h projects/ino64/sys/sys/selinfo.h projects/ino64/sys/sys/sockbuf.h projects/ino64/sys/sys/vnode.h projects/ino64/sys/ufs/ffs/ffs_extern.h projects/ino64/sys/ufs/ffs/ffs_inode.c projects/ino64/sys/ufs/ffs/ffs_softdep.c projects/ino64/sys/ufs/ufs/ufs_extattr.c projects/ino64/sys/vm/swap_pager.c projects/ino64/sys/x86/acpica/acpi_apm.c projects/ino64/usr.bin/nfsstat/nfsstat.c projects/ino64/usr.sbin/makefs/cd9660.c projects/ino64/usr.sbin/mfiutil/mfi_show.c Directory Properties: projects/ino64/ (props changed) projects/ino64/cddl/contrib/opensolaris/ (props changed) projects/ino64/contrib/bind9/ (props changed) projects/ino64/contrib/binutils/ (props changed) projects/ino64/contrib/bzip2/ (props changed) projects/ino64/contrib/compiler-rt/ (props changed) projects/ino64/contrib/dialog/ (props changed) projects/ino64/contrib/ee/ (props changed) projects/ino64/contrib/expat/ (props changed) projects/ino64/contrib/file/ (props changed) projects/ino64/contrib/gcc/ (props changed) projects/ino64/contrib/gdb/ (props changed) projects/ino64/contrib/gdtoa/ (props changed) projects/ino64/contrib/gnu-sort/ (props changed) projects/ino64/contrib/groff/ (props changed) projects/ino64/contrib/less/ (props changed) projects/ino64/contrib/libpcap/ (props changed) projects/ino64/contrib/libstdc++/ (props changed) projects/ino64/contrib/llvm/ (props changed) projects/ino64/contrib/llvm/tools/clang/ (props changed) projects/ino64/contrib/ncurses/ (props changed) projects/ino64/contrib/netcat/ (props changed) projects/ino64/contrib/ntp/ (props changed) projects/ino64/contrib/one-true-awk/ (props changed) projects/ino64/contrib/openbsm/ (props changed) projects/ino64/contrib/openpam/ (props changed) projects/ino64/contrib/pf/ (props changed) projects/ino64/contrib/sendmail/ (props changed) projects/ino64/contrib/tcpdump/ (props changed) projects/ino64/contrib/tcsh/ (props changed) projects/ino64/contrib/tnftp/ (props changed) projects/ino64/contrib/top/ (props changed) projects/ino64/contrib/top/install-sh (props changed) projects/ino64/contrib/tzcode/stdtime/ (props changed) projects/ino64/contrib/tzcode/zic/ (props changed) projects/ino64/contrib/tzdata/ (props changed) projects/ino64/contrib/wpa/ (props changed) projects/ino64/contrib/xz/ (props changed) projects/ino64/crypto/openssh/ (props changed) projects/ino64/crypto/openssl/ (props changed) projects/ino64/gnu/lib/ (props changed) projects/ino64/gnu/usr.bin/binutils/ (props changed) projects/ino64/gnu/usr.bin/cc/cc_tools/ (props changed) projects/ino64/gnu/usr.bin/gdb/ (props changed) projects/ino64/lib/libc/ (props changed) projects/ino64/lib/libc/stdtime/ (props changed) projects/ino64/lib/libutil/ (props changed) projects/ino64/lib/libz/ (props changed) projects/ino64/sbin/ (props changed) projects/ino64/sbin/ipfw/ (props changed) projects/ino64/share/mk/bsd.arch.inc.mk (props changed) projects/ino64/share/zoneinfo/ (props changed) projects/ino64/sys/ (props changed) projects/ino64/sys/amd64/include/xen/ (props changed) projects/ino64/sys/boot/ (props changed) projects/ino64/sys/boot/i386/efi/ (props changed) projects/ino64/sys/boot/ia64/efi/ (props changed) projects/ino64/sys/boot/ia64/ski/ (props changed) projects/ino64/sys/boot/powerpc/boot1.chrp/ (props changed) projects/ino64/sys/boot/powerpc/ofw/ (props changed) projects/ino64/sys/cddl/contrib/opensolaris/ (props changed) projects/ino64/sys/conf/ (props changed) projects/ino64/sys/contrib/dev/acpica/ (props changed) projects/ino64/sys/contrib/octeon-sdk/ (props changed) projects/ino64/sys/contrib/pf/ (props changed) projects/ino64/sys/contrib/x86emu/ (props changed) projects/ino64/usr.bin/calendar/ (props changed) projects/ino64/usr.bin/csup/ (props changed) projects/ino64/usr.bin/procstat/ (props changed) projects/ino64/usr.sbin/ndiscvt/ (props changed) projects/ino64/usr.sbin/rtadvctl/ (props changed) projects/ino64/usr.sbin/rtadvd/ (props changed) projects/ino64/usr.sbin/zic/ (props changed) Modified: projects/ino64/ObsoleteFiles.inc ============================================================================== --- projects/ino64/ObsoleteFiles.inc Tue Aug 30 16:40:17 2011 (r225266) +++ projects/ino64/ObsoleteFiles.inc Tue Aug 30 16:52:25 2011 (r225267) @@ -38,6 +38,23 @@ # xargs -n1 | sort | uniq -d; # done +# 20110828: library version bump for 9.0 +OLD_LIBS+=lib/libufs.so.5 +OLD_LIBS+=usr/lib/libbsnmp.so.5 +OLD_LIBS+=usr/lib/libdwarf.so.2 +OLD_LIBS+=usr/lib/libopie.so.6 +OLD_LIBS+=usr/lib/libpcap.so.7 +OLD_LIBS+=usr/lib/librtld_db.so.1 +OLD_LIBS+=usr/lib/libtacplus.so.4 +.if ${TARGET_ARCH} == "amd64" +OLD_LIBS+=usr/lib32/libufs.so.5 +OLD_LIBS+=usr/lib32/libbsnmp.so.5 +OLD_LIBS+=usr/lib32/libdwarf.so.2 +OLD_LIBS+=usr/lib32/libopie.so.6 +OLD_LIBS+=usr/lib32/libpcap.so.7 +OLD_LIBS+=usr/lib32/librtld_db.so.1 +OLD_LIBS+=usr/lib32/libtacplus.so.4 +.endif # 20110709: vm_map_clean.9 -> vm_map_sync.9 OLD_FILES+=usr/share/man/man9/vm_map_clean.9.gz # 20110709: Catch up with removal of these functions. @@ -2043,9 +2060,9 @@ OLD_FILES+=usr/share/man/man5/ipsend.5.g OLD_FILES+=usr/bin/gtar OLD_FILES+=usr/share/man/man1/gtar.1.gz # 200503XX -OLD_FILES+=share/man/man3/exp10.3.gz -OLD_FILES+=share/man/man3/exp10f.3.gz -OLD_FILES+=share/man/man3/fpsetsticky.3.gz +OLD_FILES+=usr/share/man/man3/exp10.3.gz +OLD_FILES+=usr/share/man/man3/exp10f.3.gz +OLD_FILES+=usr/share/man/man3/fpsetsticky.3.gz # 20050324: updated release infrastructure OLD_FILES+=usr/share/man/man5/drivers.conf.5.gz # 20050317: removed from BIND 9 distribution @@ -2293,6 +2310,8 @@ OLD_FILES+=lib/libz.so OLD_FILES+=bin/cxconfig OLD_FILES+=sbin/cxconfig OLD_FILES+=usr/share/man/man8/cxconfig.8.gz +# 20031016: MULTI_DRIVER_MODULE macro removed +OLD_FILES+=usr/share/man/man9/MULTI_DRIVER_MODULE.9.gz # 200309XX OLD_FILES+=usr/bin/symorder OLD_FILES+=usr/share/man/man1/symorder.1.gz Modified: projects/ino64/UPDATING ============================================================================== --- projects/ino64/UPDATING Tue Aug 30 16:40:17 2011 (r225266) +++ projects/ino64/UPDATING Tue Aug 30 16:52:25 2011 (r225267) @@ -22,6 +22,12 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 9. machines to maximize performance. (To disable malloc debugging, run ln -s aj /etc/malloc.conf.) +20110828: + Bump the shared library version numbers for libraries that + do not use symbol versioning, have changed the ABI compared + to stable/8 and which shared library version was not bumped. + Done as part of 9.0-RELEASE cycle. + 20110815: During the merge of Capsicum features, the fget(9) KPI was modified. This may require the rebuilding of out-of-tree device drivers -- @@ -1456,9 +1462,10 @@ COMMON ITEMS: FORMAT: This file contains a list, in reverse chronological order, of major -breakages in tracking -current. Not all things will be listed here, -and it only starts on October 16, 2004. Updating files can found in -previous releases if your system is older than this. +breakages in tracking -current. It is not guaranteed to be a complete +list of such breakages, and only contains entries since October 10, 2007. +If you need to see UPDATING entries from before that date, you will need +to fetch an UPDATING file from an older FreeBSD release. Copyright information: Modified: projects/ino64/bin/ed/buf.c ============================================================================== --- projects/ino64/bin/ed/buf.c Tue Aug 30 16:40:17 2011 (r225266) +++ projects/ino64/bin/ed/buf.c Tue Aug 30 16:52:25 2011 (r225267) @@ -94,6 +94,7 @@ put_sbuf_line(const char *cs) ; if (s - cs >= LINECHARS) { errmsg = "line too long"; + free(lp); return NULL; } len = s - cs; @@ -102,6 +103,7 @@ put_sbuf_line(const char *cs) if (fseeko(sfp, (off_t)0, SEEK_END) < 0) { fprintf(stderr, "%s\n", strerror(errno)); errmsg = "cannot seek temp file"; + free(lp); return NULL; } sfseek = ftello(sfp); @@ -112,6 +114,7 @@ put_sbuf_line(const char *cs) sfseek = -1; fprintf(stderr, "%s\n", strerror(errno)); errmsg = "cannot write temp file"; + free(lp); return NULL; } lp->len = len; Modified: projects/ino64/etc/motd ============================================================================== --- projects/ino64/etc/motd Tue Aug 30 16:40:17 2011 (r225266) +++ projects/ino64/etc/motd Tue Aug 30 16:52:25 2011 (r225267) @@ -10,8 +10,10 @@ o Security advisories and updated errat o The Handbook and FAQ documents are at http://www.FreeBSD.org/ and, along with the mailing lists, can be searched by going to - http://www.FreeBSD.org/search/. If the doc distribution has - been installed, they're also available formatted in /usr/share/doc. + http://www.FreeBSD.org/search/. If the doc package has been installed + (or fetched via pkg_add -r lang-freebsd-doc, where lang is the + 2-letter language code, e.g. en), they are also available formatted + in /usr/local/share/doc/freebsd. If you still have a question or problem, please take the output of `uname -a', along with any relevant error messages, and email it Modified: projects/ino64/etc/rc.d/Makefile ============================================================================== --- projects/ino64/etc/rc.d/Makefile Tue Aug 30 16:40:17 2011 (r225266) +++ projects/ino64/etc/rc.d/Makefile Tue Aug 30 16:52:25 2011 (r225267) @@ -16,7 +16,7 @@ FILES= DAEMON FILESYSTEMS LOGIN NETWORKI hostapd hostid hostid_save hostname \ inetd initrandom \ ip6addrctl ipfilter ipfs ipfw ipmon \ - ipnat ipsec ipxrouted \ + ipnat ipsec \ jail \ kadmind kerberos keyserv kld kldxref kpasswdd \ ldconfig local localpkg lockd lpd \ @@ -42,6 +42,10 @@ FILES= DAEMON FILESYSTEMS LOGIN NETWORKI ypset ypupdated ypxfrd \ zfs zvol +.if ${MK_IPX} != "no" +FILES+= ipxrouted +.endif + .if ${MK_OFED} != "no" FILES+= opensm .endif Modified: projects/ino64/gnu/usr.bin/gdb/arch/arm/armfbsd-nat.c ============================================================================== --- projects/ino64/gnu/usr.bin/gdb/arch/arm/armfbsd-nat.c Tue Aug 30 16:40:17 2011 (r225266) +++ projects/ino64/gnu/usr.bin/gdb/arch/arm/armfbsd-nat.c Tue Aug 30 16:52:25 2011 (r225267) @@ -32,8 +32,8 @@ #include "arm-tdep.h" #include -#include #ifndef CROSS_DEBUGGER +#include #include #include #endif Modified: projects/ino64/lib/libarchive/archive_read_support_format_iso9660.c ============================================================================== --- projects/ino64/lib/libarchive/archive_read_support_format_iso9660.c Tue Aug 30 16:40:17 2011 (r225266) +++ projects/ino64/lib/libarchive/archive_read_support_format_iso9660.c Tue Aug 30 16:52:25 2011 (r225267) @@ -1,7 +1,7 @@ /*- * Copyright (c) 2003-2007 Tim Kientzle * Copyright (c) 2009 Andreas Henriksson - * Copyright (c) 2009 Michihiro NAKAJIMA + * Copyright (c) 2009-2011 Michihiro NAKAJIMA * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -261,13 +261,17 @@ struct file_info { struct file_info *use_next; struct file_info *parent; struct file_info *next; + struct file_info *re_next; int subdirs; uint64_t key; /* Heap Key. */ uint64_t offset; /* Offset on disk. */ uint64_t size; /* File size in bytes. */ uint32_t ce_offset; /* Offset of CE. */ uint32_t ce_size; /* Size of CE. */ + char rr_moved; /* Flag to rr_moved. */ + char rr_moved_has_re_only; char re; /* Having RRIP "RE" extension. */ + char re_descendant; uint64_t cl_offset; /* Having RRIP "CL" extension. */ int birthtime_is_set; time_t birthtime; /* File created time. */ @@ -294,7 +298,10 @@ struct file_info { struct content *first; struct content **last; } contents; - char exposed; + struct { + struct file_info *first; + struct file_info **last; + } rede_files; }; struct heap_queue { @@ -317,8 +324,6 @@ struct iso9660 { unsigned char suspOffset; struct file_info *rr_moved; - struct heap_queue re_dirs; - struct heap_queue cl_files; struct read_ce_queue { struct read_ce_req { uint64_t offset;/* Offset of CE on disk. */ @@ -337,6 +342,10 @@ struct iso9660 { struct file_info *first; struct file_info **last; } cache_files; + struct { + struct file_info *first; + struct file_info **last; + } re_files; uint64_t current_position; ssize_t logical_block_size; @@ -377,7 +386,8 @@ static int isJolietSVD(struct iso9660 *, static int isSVD(struct iso9660 *, const unsigned char *); static int isEVD(struct iso9660 *, const unsigned char *); static int isPVD(struct iso9660 *, const unsigned char *); -static struct file_info *next_cache_entry(struct iso9660 *iso9660); +static int next_cache_entry(struct archive_read *, struct iso9660 *, + struct file_info **); static int next_entry_seek(struct archive_read *a, struct iso9660 *iso9660, struct file_info **pfile); static struct file_info * @@ -400,10 +410,12 @@ static void parse_rockridge_ZF1(struct f static void register_file(struct iso9660 *, struct file_info *); static void release_files(struct iso9660 *); static unsigned toi(const void *p, int n); +static inline void re_add_entry(struct iso9660 *, struct file_info *); +static inline struct file_info * re_get_entry(struct iso9660 *); +static inline int rede_add_entry(struct file_info *); +static inline struct file_info * rede_get_entry(struct file_info *); static inline void cache_add_entry(struct iso9660 *iso9660, struct file_info *file); -static inline void cache_add_to_next_of_parent(struct iso9660 *iso9660, - struct file_info *file); static inline struct file_info *cache_get_entry(struct iso9660 *iso9660); static void heap_add_entry(struct heap_queue *heap, struct file_info *file, uint64_t key); @@ -430,6 +442,8 @@ archive_read_support_format_iso9660(stru iso9660->magic = ISO9660_MAGIC; iso9660->cache_files.first = NULL; iso9660->cache_files.last = &(iso9660->cache_files.first); + iso9660->re_files.first = NULL; + iso9660->re_files.last = &(iso9660->re_files.first); /* Enable to support Joliet extensions by default. */ iso9660->opt_support_joliet = 1; /* Enable to support Rock Ridge extensions by default. */ @@ -975,42 +989,38 @@ read_children(struct archive_read *a, st child = parse_file_info(a, parent, p); if (child == NULL) return (ARCHIVE_FATAL); - if (child->cl_offset) - heap_add_entry(&(iso9660->cl_files), - child, child->cl_offset); - else { - if (child->multi_extent || multi != NULL) { - struct content *con; - - if (multi == NULL) { - multi = child; - multi->contents.first = NULL; - multi->contents.last = - &(multi->contents.first); - } - con = malloc(sizeof(struct content)); - if (con == NULL) { - archive_set_error( - &a->archive, ENOMEM, - "No memory for " - "multi extent"); - return (ARCHIVE_FATAL); - } - con->offset = child->offset; - con->size = child->size; - con->next = NULL; - *multi->contents.last = con; - multi->contents.last = &(con->next); - if (multi == child) - add_entry(iso9660, child); - else { - multi->size += child->size; - if (!child->multi_extent) - multi = NULL; - } - } else + if (child->cl_offset == 0 && + (child->multi_extent || multi != NULL)) { + struct content *con; + + if (multi == NULL) { + multi = child; + multi->contents.first = NULL; + multi->contents.last = + &(multi->contents.first); + } + con = malloc(sizeof(struct content)); + if (con == NULL) { + archive_set_error( + &a->archive, ENOMEM, + "No memory for " + "multi extent"); + return (ARCHIVE_FATAL); + } + con->offset = child->offset; + con->size = child->size; + con->next = NULL; + *multi->contents.last = con; + multi->contents.last = &(con->next); + if (multi == child) add_entry(iso9660, child); - } + else { + multi->size += child->size; + if (!child->multi_extent) + multi = NULL; + } + } else + add_entry(iso9660, child); } } @@ -1022,102 +1032,12 @@ read_children(struct archive_read *a, st } static int -relocate_dir(struct iso9660 *iso9660, struct file_info *file) -{ - struct file_info *re; - - re = heap_get_entry(&(iso9660->re_dirs)); - while (re != NULL && re->offset < file->cl_offset) { - /* This case is wrong pattern. - * But dont't reject this directory entry to be robust. */ - cache_add_entry(iso9660, re); - re = heap_get_entry(&(iso9660->re_dirs)); - } - if (re == NULL) - /* This case is wrong pattern. */ - return (0); - if (re->offset == file->cl_offset) { - re->parent->subdirs--; - re->parent = file->parent; - re->parent->subdirs++; - cache_add_to_next_of_parent(iso9660, re); - return (1); - } else - /* This case is wrong pattern. */ - heap_add_entry(&(iso9660->re_dirs), re, re->offset); - return (0); -} - -static int -read_entries(struct archive_read *a) -{ - struct iso9660 *iso9660; - struct file_info *file; - int r; - - iso9660 = (struct iso9660 *)(a->format->data); - - while ((file = next_entry(iso9660)) != NULL && - (file->mode & AE_IFMT) == AE_IFDIR) { - r = read_children(a, file); - if (r != ARCHIVE_OK) - return (r); - - if (iso9660->seenRockridge && - file->parent != NULL && - file->parent->parent == NULL && - iso9660->rr_moved == NULL && - (strcmp(file->name.s, "rr_moved") == 0 || - strcmp(file->name.s, ".rr_moved") == 0)) { - iso9660->rr_moved = file; - } else if (file->re) - heap_add_entry(&(iso9660->re_dirs), file, - file->offset); - else - cache_add_entry(iso9660, file); - } - if (file != NULL) - add_entry(iso9660, file); - - if (iso9660->rr_moved != NULL) { - /* - * Relocate directory which rr_moved has. - */ - while ((file = heap_get_entry(&(iso9660->cl_files))) != NULL) - relocate_dir(iso9660, file); - - /* If rr_moved directory still has children, - * Add rr_moved into pending_files to show - */ - if (iso9660->rr_moved->subdirs) { - cache_add_entry(iso9660, iso9660->rr_moved); - /* If entries which have "RE" extension are still - * remaining(this case is unlikely except ISO image - * is broken), the entries won't be exposed. */ - while ((file = heap_get_entry(&(iso9660->re_dirs))) != NULL) - cache_add_entry(iso9660, file); - } else - iso9660->rr_moved->parent->subdirs--; - } else { - /* - * In case ISO image is broken. If the name of rr_moved - * directory has been changed by damage, subdirectories - * of rr_moved entry won't be exposed. - */ - while ((file = heap_get_entry(&(iso9660->re_dirs))) != NULL) - cache_add_entry(iso9660, file); - } - - return (ARCHIVE_OK); -} - -static int archive_read_format_iso9660_read_header(struct archive_read *a, struct archive_entry *entry) { struct iso9660 *iso9660; struct file_info *file; - int r, rd_r; + int r, rd_r = ARCHIVE_OK; iso9660 = (struct iso9660 *)(a->format->data); @@ -1207,11 +1127,7 @@ archive_read_format_iso9660_read_header( a->archive.archive_format_name = "ISO9660 with Rockridge extensions"; } - rd_r = read_entries(a); - if (rd_r == ARCHIVE_FATAL) - return (ARCHIVE_FATAL); - } else - rd_r = ARCHIVE_OK; + } /* Get the next entry that appears after the current offset. */ r = next_entry_seek(a, iso9660, &file); @@ -1324,7 +1240,6 @@ archive_read_format_iso9660_read_header( /* Directory data has been read completely. */ iso9660->entry_bytes_remaining = 0; iso9660->entry_sparse_offset = 0; - file->exposed = 1; } if (rd_r != ARCHIVE_OK) @@ -1651,10 +1566,6 @@ archive_read_format_iso9660_cleanup(stru archive_string_free(&iso9660->previous_pathname); if (iso9660->pending_files.files) free(iso9660->pending_files.files); - if (iso9660->re_dirs.files) - free(iso9660->re_dirs.files); - if (iso9660->cl_files.files) - free(iso9660->cl_files.files); #ifdef HAVE_ZLIB_H free(iso9660->entry_zisofs.uncompressed_buffer); free(iso9660->entry_zisofs.block_pointers); @@ -1735,6 +1646,8 @@ parse_file_info(struct archive_read *a, file->size = fsize; file->mtime = isodate7(isodirrec + DR_date_offset); file->ctime = file->atime = file->mtime; + file->rede_files.first = NULL; + file->rede_files.last = &(file->rede_files.first); p = isodirrec + DR_name_offset; /* Rockridge extensions (if any) follow name. Compute this @@ -1873,9 +1786,40 @@ parse_file_info(struct archive_read *a, file->nlinks = 1;/* Reset nlink. we'll calculate it later. */ /* Tell file's parent how many children that parent has. */ - if (parent != NULL && (flags & 0x02) && file->cl_offset == 0) + if (parent != NULL && (flags & 0x02)) parent->subdirs++; + if (iso9660->seenRockridge) { + if (parent != NULL && parent->parent == NULL && + (flags & 0x02) && iso9660->rr_moved == NULL && + (strcmp(file->name.s, "rr_moved") == 0 || + strcmp(file->name.s, ".rr_moved") == 0)) { + iso9660->rr_moved = file; + file->rr_moved = 1; + file->rr_moved_has_re_only = 1; + file->re = 0; + parent->subdirs--; + } else if (file->re) { + /* This file's parent is not rr_moved, clear invalid + * "RE" mark. */ + if (parent == NULL || parent->rr_moved == 0) + file->re = 0; + else if ((flags & 0x02) == 0) { + file->rr_moved_has_re_only = 0; + file->re = 0; + } + } else if (parent != NULL && parent->rr_moved) + file->rr_moved_has_re_only = 0; + else if (parent != NULL && (flags & 0x02) && + (parent->re || parent->re_descendant)) + file->re_descendant = 1; + if (file->cl_offset != 0) { + parent->subdirs++; + /* To be appeared before other dirs. */ + file->offset = file->number = file->cl_offset; + } + } + #if DEBUG /* DEBUGGING: Warn about attributes I don't yet fully support. */ if ((flags & ~0x02) != 0) { @@ -2489,10 +2433,12 @@ next_entry_seek(struct archive_read *a, struct file_info **pfile) { struct file_info *file; + int r; - *pfile = file = next_cache_entry(iso9660); - if (file == NULL) - return (ARCHIVE_EOF); + r = next_cache_entry(a, iso9660, pfile); + if (r != ARCHIVE_OK) + return (r); + file = *pfile; /* Don't waste time seeking for zero-length bodies. */ if (file->size == 0) @@ -2513,8 +2459,9 @@ next_entry_seek(struct archive_read *a, return (ARCHIVE_OK); } -static struct file_info * -next_cache_entry(struct iso9660 *iso9660) +static int +next_cache_entry(struct archive_read *a, struct iso9660 *iso9660, + struct file_info **pfile) { struct file_info *file; struct { @@ -2526,21 +2473,128 @@ next_cache_entry(struct iso9660 *iso9660 file = cache_get_entry(iso9660); if (file != NULL) { - while (file->parent != NULL && !file->parent->exposed) { - /* If file's parent is not exposed, it's moved - * to next entry of its parent. */ - cache_add_to_next_of_parent(iso9660, file); - file = cache_get_entry(iso9660); - } - return (file); + *pfile = file; + return (ARCHIVE_OK); } - file = next_entry(iso9660); - if (file == NULL) - return (NULL); + for (;;) { + struct file_info *re, *d; + + *pfile = file = next_entry(iso9660); + if (file == NULL) { + /* + * If directory entries all which are descendant of + * rr_moved are stil remaning, expose their. + */ + if (iso9660->re_files.first != NULL && + iso9660->rr_moved != NULL && + iso9660->rr_moved->rr_moved_has_re_only) + /* Expose "rr_moved" entry. */ + cache_add_entry(iso9660, iso9660->rr_moved); + while ((re = re_get_entry(iso9660)) != NULL) { + /* Expose its descendant dirs. */ + while ((d = rede_get_entry(re)) != NULL) + cache_add_entry(iso9660, d); + } + if (iso9660->cache_files.first != NULL) + return (next_cache_entry(a, iso9660, pfile)); + return (ARCHIVE_EOF); + } + + if (file->cl_offset) { + struct file_info *first_re = NULL; + int nexted_re = 0; + + /* + * Find "RE" dir for the current file, which + * has "CL" flag. + */ + while ((re = re_get_entry(iso9660)) + != first_re) { + if (first_re == NULL) + first_re = re; + if (re->offset == file->cl_offset) { + re->parent->subdirs--; + re->parent = file->parent; + re->re = 0; + if (re->parent->re_descendant) { + nexted_re = 1; + re->re_descendant = 1; + if (rede_add_entry(re) < 0) + goto fatal_rr; + /* Move a list of descendants + * to a new ancestor. */ + while ((d = rede_get_entry( + re)) != NULL) + if (rede_add_entry(d) + < 0) + goto fatal_rr; + break; + } + /* Replace the current file + * with "RE" dir */ + *pfile = file = re; + /* Expose its descendant */ + while ((d = rede_get_entry( + file)) != NULL) + cache_add_entry( + iso9660, d); + break; + } else + re_add_entry(iso9660, re); + } + if (nexted_re) { + /* + * Do not expose this at this time + * because we have not gotten its full-path + * name yet. + */ + continue; + } + } else if ((file->mode & AE_IFMT) == AE_IFDIR) { + int r; + + /* Read file entries in this dir. */ + r = read_children(a, file); + if (r != ARCHIVE_OK) + return (r); + + /* + * Handle a special dir of Rockridge extensions, + * "rr_moved". + */ + if (file->rr_moved) { + /* + * If this has only the subdirectories which + * have "RE" flags, do not expose at this time. + */ + if (file->rr_moved_has_re_only) + continue; + /* Otherwise expose "rr_moved" entry. */ + } else if (file->re) { + /* + * Do not expose this at this time + * because we have not gotten its full-path + * name yet. + */ + re_add_entry(iso9660, file); + continue; + } else if (file->re_descendant) { + /* + * Do not expose this at this time + * because we have not gotten its full-path + * name yet. + */ + if (rede_add_entry(file) < 0) + goto fatal_rr; + continue; + } + } + break; + } if ((file->mode & AE_IFMT) != AE_IFREG || file->number == -1) - return (file); + return (ARCHIVE_OK); count = 0; number = file->number; @@ -2573,8 +2627,10 @@ next_cache_entry(struct iso9660 *iso9660 file = next_entry(iso9660); } - if (count == 0) - return (file); + if (count == 0) { + *pfile = file; + return ((file == NULL)?ARCHIVE_EOF:ARCHIVE_OK); + } if (file->number == -1) { file->next = NULL; *empty_files.last = file; @@ -2599,24 +2655,75 @@ next_cache_entry(struct iso9660 *iso9660 *iso9660->cache_files.last = empty_files.first; iso9660->cache_files.last = empty_files.last; } - return (cache_get_entry(iso9660)); + *pfile = cache_get_entry(iso9660); + return ((*pfile == NULL)?ARCHIVE_EOF:ARCHIVE_OK); + +fatal_rr: + archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, + "Failed to connect 'CL' pointer to 'RE' rr_moved pointer of" + "Rockridge extensions"); + return (ARCHIVE_FATAL); } static inline void -cache_add_entry(struct iso9660 *iso9660, struct file_info *file) +re_add_entry(struct iso9660 *iso9660, struct file_info *file) { - file->next = NULL; - *iso9660->cache_files.last = file; - iso9660->cache_files.last = &(file->next); + file->re_next = NULL; + *iso9660->re_files.last = file; + iso9660->re_files.last = &(file->re_next); +} + +static inline struct file_info * +re_get_entry(struct iso9660 *iso9660) +{ + struct file_info *file; + + if ((file = iso9660->re_files.first) != NULL) { + iso9660->re_files.first = file->re_next; + if (iso9660->re_files.first == NULL) + iso9660->re_files.last = + &(iso9660->re_files.first); + } + return (file); +} + +static inline int +rede_add_entry(struct file_info *file) +{ + struct file_info *re; + + re = file->parent; + while (re != NULL && !re->re) + re = re->parent; + if (re == NULL) + return (-1); + + file->re_next = NULL; + *re->rede_files.last = file; + re->rede_files.last = &(file->re_next); + return (0); +} + +static inline struct file_info * +rede_get_entry(struct file_info *re) +{ + struct file_info *file; + + if ((file = re->rede_files.first) != NULL) { + re->rede_files.first = file->re_next; + if (re->rede_files.first == NULL) + re->rede_files.last = + &(re->rede_files.first); + } + return (file); } static inline void -cache_add_to_next_of_parent(struct iso9660 *iso9660, struct file_info *file) +cache_add_entry(struct iso9660 *iso9660, struct file_info *file) { - file->next = file->parent->next; - file->parent->next = file; - if (iso9660->cache_files.last == &(file->parent->next)) - iso9660->cache_files.last = &(file->next); + file->next = NULL; + *iso9660->cache_files.last = file; + iso9660->cache_files.last = &(file->next); } static inline struct file_info * Copied: projects/ino64/lib/libarchive/test/test_read_format_iso_2.iso.Z.uu (from r225266, head/lib/libarchive/test/test_read_format_iso_2.iso.Z.uu) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ino64/lib/libarchive/test/test_read_format_iso_2.iso.Z.uu Tue Aug 30 16:52:25 2011 (r225267, copy of r225266, head/lib/libarchive/test/test_read_format_iso_2.iso.Z.uu) @@ -0,0 +1,37 @@ +$FreeBSD$ + +begin 644 test_read_format_iso_2.iso.Z +M'YV0``(*'$BPH,&#"!,J7,BPH<.'$"-*G$BQHL6+&#-JW,BQH\>/($.*'$FR +MI,F3*%.J7,FRIO8,.*'4NVK-FS:-.J7//JW/'D"-+GDRYLN7+F#-KWLRY +ML^?/H$.+'DVZM.G3J%.K7LVZM>O7L&/+GDV[MNW;N'/KWLV[M^_?P(,+'TZ\ +MN/'CR),K7\Z\N?/GT*-+GTZ]NO7KV+-KW\Z]N_?OX,.+'T^^O/GSZ-.K7\^^ +MO?OW\./+GT^_OOW[^//KW\^_O_^_`0Q!!`PPQ!```$Z408<04Q`!PH,01BCA +MA!16:.&%$!Z404$;>G0@``%\>"`""`#@04$>2)#0!`.)```%!<%8HD`EEF+C +MC:4($)"(!V+HXX]`!BGDD$06:>212":IY)),-NGDDU!&*>645%9II8\R%!@# +M##C$0(,,,6Q)PPP$DI-EF%QZ"::89,)`#H%PQBDGG&=NV>67:(Y9YH?_]>GG +MGX7](R"!!@)JZ*&()JKHHL<="...`AU80:0`!`$B`!=0.@2CG';JZ:>@A@H8 +MGR]>:FI`DP9@*:F9!BCJJ[#&*NNLM#[EXJ,#R3A0C3C:J*.I(0)P:XP`S!@0 +MK[W^RF,`+DY*T*3&%@O`&P@X4($"!I"C[(ZJNI@I09E&6R*UUBJP@+:0@NAJ +MK>RVZ^Z[\$;7;$'0[CIMM==FNZVZPI9*D*XT`M"KK^F&&(`)`%A0D`4&%&0` +MN?F20RF(!`CAP@XQQ*OQQAQW['%S:)3!!AMO*/#QR2BGK/+*G7I;4+CV0FPN +MNL`>..R_T@8\<(X%AX@P!@5AT#!!#^,[\\0!$$#$Q1FS[/334$M]MILM^WVVW#'+??<=-=M]]UXYZWW +MWGSW[???@`N^>:<=^[Y +MYZ"'+OKHI)=N^NFHIZ[ZZJRW[OKKL,O_/+,-^_\\]!'+_WTU%=O_?789Z_]]MQW[_WWX(BGK_[Z[+?O_OOPQR___/37;__]^.>O__[\]^___P`,H``'2,`"&O"`"$R@ +M`A?(P`8Z\($0C*`$)TC!"EKP@AC,H`8WR,$.>O"#(`RA"$=(PA*:\(0H3*$* +M5\C"%KKPA3",H0QG2,,:VO"&.,RA#G?(PQ[Z\(=`#*(0ATC$(AKQB$A,HA*7 +MR,0F.O&)4(RB%*=(Q2I:\8I8S*(6M\C%+GKQBV`,HQC'2,8RFO&,:$RC&M?( +MQC:Z\8UPC*,O.;X`RG.,=)SG*:\YSH3*^,RG/O?)SW[Z\Y\`#:A`!TK0@AKTH`A-J$(7RM"&.O2A +M$(VH1"=*T8I:]*(8S:A&-\K1CGKTHR`-J4A'2M*2FO2D*$VI2E?*TI:Z]*4P +MC:E,9TK3FMKTICC-J4YWRM.>^O2G0`VJ4(=*U*(:]:A(3:I2E\K4ICKUJ5"- +MJE2G2M6J6O6J6,VJ5K?*U:YZ]:M@#:M8QTK6LIKUK&A-JUK7RM:VNO6M<`TG +` +end Modified: projects/ino64/lib/libarchive/test/test_read_format_iso_gz.c ============================================================================== --- projects/ino64/lib/libarchive/test/test_read_format_iso_gz.c Tue Aug 30 16:40:17 2011 (r225266) +++ projects/ino64/lib/libarchive/test/test_read_format_iso_gz.c Tue Aug 30 16:52:25 2011 (r225267) @@ -25,7 +25,8 @@ #include "test.h" __FBSDID("$FreeBSD$"); -DEFINE_TEST(test_read_format_iso_gz) +static void +test1(void) { struct archive_entry *ae; struct archive *a; @@ -49,4 +50,50 @@ DEFINE_TEST(test_read_format_iso_gz) assertEqualInt(ARCHIVE_OK, archive_read_finish(a)); } +static +void test2(void) +{ + struct archive_entry *ae; + struct archive *a; + const char *name = "test_read_format_iso_2.iso.Z"; + + extract_reference_file(name); + + assert((a = archive_read_new()) != NULL); + assertEqualIntA(a, ARCHIVE_OK, + archive_read_support_compression_all(a)); + assertEqualIntA(a, ARCHIVE_OK, + archive_read_support_format_all(a)); + assertEqualIntA(a, ARCHIVE_OK, + archive_read_open_filename(a, name, 512)); + assertEqualIntA(a, ARCHIVE_OK, + archive_read_next_header(a, &ae)); + assertEqualString(".", archive_entry_pathname(ae)); + assertEqualIntA(a, ARCHIVE_OK, + archive_read_next_header(a, &ae)); + assertEqualString("A", archive_entry_pathname(ae)); + assertEqualIntA(a, ARCHIVE_OK, + archive_read_next_header(a, &ae)); + assertEqualString("A/B", archive_entry_pathname(ae)); + assertEqualIntA(a, ARCHIVE_OK, + archive_read_next_header(a, &ae)); + assertEqualString("C", archive_entry_pathname(ae)); + assertEqualIntA(a, ARCHIVE_OK, + archive_read_next_header(a, &ae)); + assertEqualString("C/D", archive_entry_pathname(ae)); + assertEqualIntA(a, ARCHIVE_EOF, + archive_read_next_header(a, &ae)); + assertEqualInt(archive_compression(a), + ARCHIVE_COMPRESSION_COMPRESS); + assertEqualInt(archive_format(a), ARCHIVE_FORMAT_ISO9660); + assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); + assertEqualInt(ARCHIVE_OK, archive_read_finish(a)); +} + +DEFINE_TEST(test_read_format_iso_gz) +{ + test1(); + test2(); +} + Modified: projects/ino64/lib/libarchive/test/test_read_format_isojoliet_bz2.c ============================================================================== --- projects/ino64/lib/libarchive/test/test_read_format_isojoliet_bz2.c Tue Aug 30 16:40:17 2011 (r225266) +++ projects/ino64/lib/libarchive/test/test_read_format_isojoliet_bz2.c Tue Aug 30 16:52:25 2011 (r225267) @@ -95,7 +95,7 @@ DEFINE_TEST(test_read_format_isojoliet_b /* A regular file with two names ("hardlink" gets returned * first, so it's not marked as a hardlink). */ assertEqualInt(0, archive_read_next_header(a, &ae)); - assertEqualString("long-joliet-file-name.textfile", + assertEqualString("hardlink", archive_entry_pathname(ae)); assertEqualInt(AE_IFREG, archive_entry_filetype(ae)); assert(archive_entry_hardlink(ae) == NULL); @@ -108,9 +108,10 @@ DEFINE_TEST(test_read_format_isojoliet_b /* Second name for the same regular file (this happens to be * returned second, so does get marked as a hardlink). */ assertEqualInt(0, archive_read_next_header(a, &ae)); - assertEqualString("hardlink", archive_entry_pathname(ae)); - assertEqualInt(AE_IFREG, archive_entry_filetype(ae)); assertEqualString("long-joliet-file-name.textfile", + archive_entry_pathname(ae)); + assertEqualInt(AE_IFREG, archive_entry_filetype(ae)); + assertEqualString("hardlink", archive_entry_hardlink(ae)); assert(!archive_entry_size_is_set(ae)); Modified: projects/ino64/lib/libarchive/test/test_read_format_isojoliet_long.c ============================================================================== --- projects/ino64/lib/libarchive/test/test_read_format_isojoliet_long.c Tue Aug 30 16:40:17 2011 (r225266) +++ projects/ino64/lib/libarchive/test/test_read_format_isojoliet_long.c Tue Aug 30 16:52:25 2011 (r225267) @@ -111,7 +111,7 @@ DEFINE_TEST(test_read_format_isojoliet_l pathname[102] = '3'; pathname[103] = '\0'; assertEqualInt(0, archive_read_next_header(a, &ae)); - assertEqualString(pathname, archive_entry_pathname(ae)); + assertEqualString("hardlink", archive_entry_pathname(ae)); assertEqualInt(AE_IFREG, archive_entry_filetype(ae)); assert(archive_entry_hardlink(ae) == NULL); assertEqualInt(6, archive_entry_size(ae)); @@ -123,9 +123,9 @@ DEFINE_TEST(test_read_format_isojoliet_l /* Second name for the same regular file (this happens to be * returned second, so does get marked as a hardlink). */ assertEqualInt(0, archive_read_next_header(a, &ae)); - assertEqualString("hardlink", archive_entry_pathname(ae)); + assertEqualString(pathname, archive_entry_pathname(ae)); assertEqualInt(AE_IFREG, archive_entry_filetype(ae)); - assertEqualString(pathname, archive_entry_hardlink(ae)); + assertEqualString("hardlink", archive_entry_hardlink(ae)); assert(!archive_entry_size_is_set(ae)); /* End of archive. */ Modified: projects/ino64/lib/libarchive/test/test_read_format_isojoliet_rr.c ============================================================================== --- projects/ino64/lib/libarchive/test/test_read_format_isojoliet_rr.c Tue Aug 30 16:40:17 2011 (r225266) +++ projects/ino64/lib/libarchive/test/test_read_format_isojoliet_rr.c Tue Aug 30 16:52:25 2011 (r225267) @@ -98,7 +98,7 @@ DEFINE_TEST(test_read_format_isojoliet_r /* A regular file with two names ("hardlink" gets returned * first, so it's not marked as a hardlink). */ assertEqualInt(0, archive_read_next_header(a, &ae)); - assertEqualString("long-joliet-file-name.textfile", + assertEqualString("hardlink", archive_entry_pathname(ae)); assertEqualInt(AE_IFREG, archive_entry_filetype(ae)); assert(archive_entry_hardlink(ae) == NULL); @@ -120,9 +120,10 @@ DEFINE_TEST(test_read_format_isojoliet_r /* Second name for the same regular file (this happens to be * returned second, so does get marked as a hardlink). */ assertEqualInt(0, archive_read_next_header(a, &ae)); - assertEqualString("hardlink", archive_entry_pathname(ae)); - assertEqualInt(AE_IFREG, archive_entry_filetype(ae)); assertEqualString("long-joliet-file-name.textfile", + archive_entry_pathname(ae)); + assertEqualInt(AE_IFREG, archive_entry_filetype(ae)); + assertEqualString("hardlink", archive_entry_hardlink(ae)); assert(!archive_entry_size_is_set(ae)); assertEqualInt(86401, archive_entry_mtime(ae)); Modified: projects/ino64/lib/libarchive/test/test_read_format_isorr_bz2.c ============================================================================== --- projects/ino64/lib/libarchive/test/test_read_format_isorr_bz2.c Tue Aug 30 16:40:17 2011 (r225266) +++ projects/ino64/lib/libarchive/test/test_read_format_isorr_bz2.c Tue Aug 30 16:52:25 2011 (r225267) @@ -97,9 +97,9 @@ DEFINE_TEST(test_read_format_isorr_bz2) assertEqualInt(2, archive_entry_stat(ae)->st_nlink); assertEqualInt(1, archive_entry_uid(ae)); assertEqualInt(2, archive_entry_gid(ae)); - } else if (strcmp("hardlink", archive_entry_pathname(ae)) == 0) { + } else if (strcmp("file", archive_entry_pathname(ae)) == 0) { /* A regular file. */ - assertEqualString("hardlink", archive_entry_pathname(ae)); + assertEqualString("file", archive_entry_pathname(ae)); assertEqualInt(AE_IFREG, archive_entry_filetype(ae)); assertEqualInt(12345684, archive_entry_size(ae)); assertEqualInt(0, @@ -111,16 +111,16 @@ DEFINE_TEST(test_read_format_isorr_bz2) assertEqualInt(2, archive_entry_stat(ae)->st_nlink); assertEqualInt(1, archive_entry_uid(ae)); assertEqualInt(2, archive_entry_gid(ae)); - } else if (strcmp("file", archive_entry_pathname(ae)) == 0) { + } else if (strcmp("hardlink", archive_entry_pathname(ae)) == 0) { /* A hardlink to the regular file. */ /* Note: If "hardlink" gets returned before "file", * then "hardlink" will get returned as a regular file * and "file" will get returned as the hardlink. * This test should tolerate that, since it's a * perfectly permissible thing for libarchive to do. */ - assertEqualString("file", archive_entry_pathname(ae)); + assertEqualString("hardlink", archive_entry_pathname(ae)); assertEqualInt(AE_IFREG, archive_entry_filetype(ae)); - assertEqualString("hardlink", archive_entry_hardlink(ae)); + assertEqualString("file", archive_entry_hardlink(ae)); assertEqualInt(0, archive_entry_size_is_set(ae)); assertEqualInt(0, archive_entry_size(ae)); assertEqualInt(86401, archive_entry_mtime(ae)); Modified: projects/ino64/lib/libarchive/test/test_read_format_isorr_new_bz2.c ============================================================================== --- projects/ino64/lib/libarchive/test/test_read_format_isorr_new_bz2.c Tue Aug 30 16:40:17 2011 (r225266) +++ projects/ino64/lib/libarchive/test/test_read_format_isorr_new_bz2.c Tue Aug 30 16:52:25 2011 (r225267) @@ -98,9 +98,9 @@ DEFINE_TEST(test_read_format_isorr_new_b assertEqualInt(2, archive_entry_stat(ae)->st_nlink); assertEqualInt(1, archive_entry_uid(ae)); assertEqualInt(2, archive_entry_gid(ae)); - } else if (strcmp("hardlink", archive_entry_pathname(ae)) == 0) { + } else if (strcmp("file", archive_entry_pathname(ae)) == 0) { /* A regular file. */ - assertEqualString("hardlink", archive_entry_pathname(ae)); + assertEqualString("file", archive_entry_pathname(ae)); assertEqualInt(AE_IFREG, archive_entry_filetype(ae)); assertEqualInt(12345684, archive_entry_size(ae)); assertEqualInt(0, @@ -112,16 +112,16 @@ DEFINE_TEST(test_read_format_isorr_new_b assertEqualInt(2, archive_entry_stat(ae)->st_nlink); assertEqualInt(1, archive_entry_uid(ae)); *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***