freebsd-dev/lib
Tim Kientzle 2adbd7ee43 Issues with hardlinks in newc-format files prompted me to
write a new test to exercise the hardlink strategies used
by different archive formats (tar, old cpio, new cpio).
This uncovered two problems, both fixed by this commit:

1) Enforce file size when writing files to disk.

2) When restoring hardlink entries, if they have data associated, go
   ahead and open the file so we can write the data.

In particular, this fixes bsdtar/bsdcpio extraction of new cpio
formats where the "original" is empty and the subsequent "hardlink"
entry actually carries the data.  It also provides correct behavior
for old cpio archives where hardlinked entries have their bodies
stored multiple times in the archive; the last body should always be
the one that ends up in the final file.  The new pax format also
permits (but does not require) hardlinks to carry file data; again,
the last contents should always win.

Note that with any of these, a size of zero on a hardlink simply means
that the hardlink carries no data; it does not mean that the file has
zero size.  A non-zero size on a hardlink does provide the file size.

Thanks to: John Baldwin, for reminding me about this long-standing bug
    and sending me a simple example archive that prompted this test case
2008-01-18 05:05:58 +00:00
..
bind One more glue update for BIND 9.4.2 2007-12-02 22:21:30 +00:00
csu The __used (== __attribute__((__used)) ) silences the warning produced 2007-12-04 12:18:43 +00:00
libalias - Bump share library version which were missed in last bump 2007-06-18 18:47:54 +00:00
libarchive Issues with hardlinks in newc-format files prompted me to 2008-01-18 05:05:58 +00:00
libatm Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libautofs Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libbegemot Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libbluetooth Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libbsm Install getaudit_addr(2) and setaudit_addr(2) links to getaudit(2) and 2007-10-19 10:37:34 +00:00
libbsnmp - Bump share library version which were missed in last bump 2007-06-18 18:47:54 +00:00
libbz2 Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libc Add an alternative view of the bits in an 80-bit long double (64+16 2008-01-17 16:39:07 +00:00
libc_r Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libcalendar
libcam
libcom_err
libcompat
libcrypt Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libdevinfo
libdevstat Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libdisk Hmmm, must get reading glasses or else change the font on my terminal. That 2007-11-24 11:58:54 +00:00
libedit Merge NetBSD changes, among them: 2007-06-10 19:06:09 +00:00
libelf - Allow source descriptors with no data to be used as arguments to the 2007-11-26 03:09:33 +00:00
libexpat Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libfetch Add missing dependencies on Makefile (fixes NO_CLEAN builds). 2007-12-19 05:10:07 +00:00
libftpio Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libgeom
libgpib Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libgssapi Make sure GSS-API mechanisms are loaded if gss_acquire_cred is called 2007-11-28 08:50:20 +00:00
libipsec Commit IPv6 support for FAST_IPSEC to the tree. 2007-07-01 12:08:08 +00:00
libipx
libkiconv Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libkse Remove hacks to allow libkse to export its symbols in the LIBTHREAD_1_0 2007-12-16 23:29:57 +00:00
libkvm Plug memory leaks that is observed when argbuf or argspc is used in the 2008-01-12 00:54:47 +00:00
libmagic Update for the 'file' 4.23 import. 2008-01-13 20:37:19 +00:00
libmd Use unsigned comparisons. Prior to this commit, SHA1_Update and 2007-05-14 05:00:37 +00:00
libmemstat Make pointer argument to kread_string() const since the kernel structure 2007-05-21 18:16:04 +00:00
libmilter
libmp Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libncp Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libnetgraph Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libngatm Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libopie Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libpam Adjust for OpenPAM Hydrangea. 2007-12-21 12:00:16 +00:00
libpcap Update for libpcap 0.9.8 import 2007-10-16 02:10:44 +00:00
libpmc Improve style(9) compliance and trim a long text line. 2007-12-07 13:52:51 +00:00
libradius Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
librpcsvc
librt Enable symbol versioning by default. Use WITHOUT_SYMVER to disable it. 2007-05-13 14:12:40 +00:00
libsbuf
libsdp Fix bug in handling SDP continuation state. 2007-11-16 15:13:12 +00:00
libsm
libsmb Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libsmdb
libsmutil
libstand Fix logical bug in the bzip2 reading code, which results in bogus EIO 2007-12-18 01:50:49 +00:00
libtacplus Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libtelnet
libthr SYSTEM_SCOPE_ONLY flag is no longer needed, it is the only mode libthr 2008-01-18 04:29:36 +00:00
libthread_db Add arm support in libthread_db. 2007-11-17 21:27:53 +00:00
libufs Add a berase() function which uses ioctl(DIOCGDELETE) to erase a slab 2007-12-16 18:02:37 +00:00
libugidfw Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libusbhid Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libutil Put back the openpty(3) and ptsname(3) fixes but don't disable ptsname(3) 2008-01-15 15:36:23 +00:00
libvgl Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libwrap Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
liby
libypclnt Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00
libz
msun Add a macro STRICT_ASSIGN() to help avoid the compiler bug that 2008-01-17 17:02:11 +00:00
ncurses - Update build glue for 5.6-20071222 2007-12-30 11:17:40 +00:00
Makefile - Fix setting of MK_GSSAPI option by bsd.own.mk; its value should 2007-12-12 16:39:32 +00:00
Makefile.inc Bump library versions in preparation for 7.0. 2007-05-21 02:49:08 +00:00