Commit Graph

306 Commits

Author SHA1 Message Date
Sergey Poznyakoff
ecd43c1314 Update 2005-09-03 10:29:19 +00:00
Sergey Poznyakoff
eacde4bca7 Updated 2005-08-17 14:52:12 +00:00
Sergey Poznyakoff
b65b1ff9eb Updated 2005-08-01 06:28:15 +00:00
Sergey Poznyakoff
9d23481b5f Updated 2005-07-08 14:40:59 +00:00
Sergey Poznyakoff
59a4026674 Updated 2005-07-07 16:20:19 +00:00
Sergey Poznyakoff
a34b0ad8c9 Updated 2005-06-25 09:13:20 +00:00
Sergey Poznyakoff
f319c5575b Updated 2005-06-23 12:57:38 +00:00
Sergey Poznyakoff
4bd38118e0 Updated 2005-06-23 12:17:00 +00:00
Sergey Poznyakoff
aedacf9d29 Updated 2005-06-23 09:51:31 +00:00
Sergey Poznyakoff
8d52260315 Updated 2005-06-23 09:10:51 +00:00
Sergey Poznyakoff
c877b48d68 Updated 2005-06-23 08:27:41 +00:00
Paul Eggert
040b5ab5f9 A sweep of the sparse code prompted by a bug report by Jim Meyering.
* src/sparse.c: Include <inttostr.h>.
(struct tar_sparse_file): offset and dumped_size are off_t, not
size_t.  optab is now const *.
(dump_zeros): Return bool success flag, not off_t.
All callers changed.
Use a constant-zero buffer rather than clearing a buffer each time.
Don't mess up if write fails.
(dump_zeros, check_sparse_region):
Don't assume off_t is no wider than size_t.
(tar_sparse_init): Don't bother clearing a field that is already clear.
(zero_block_p): First arg is const *, not *.
(clear_block, SPARSES_INIT_COUNT): Remove.
(sparse_add_map): First arg is now struct start_stat_info *, not
struct tar_sparse_file *.  All callers changed.
Use x2nrealloc to check for size_t overflow.
(parse_scan_file): Cache commonly-used parts of file.
Use an auto buffer, not a static one.
Don't bother clearing the buffer; not needed.
Don't bother clearing items that are already clear.
(oldgnu_optab, star_optab, pax_optab): Now const.
(sparse_dump_region): Don't bother clearing the buffer before
reading into it; just clear the parts that aren't read into.
(sparse_dump_file): Clear the whole local variable 'file'.
(diff_buffer): Remove; now a local var.
(check_sparse_region): Don't bother clearing buffer before
reading into it.  Don't assume off_t is promoted to long.
(oldgnu_get_sparse_info, star_get_sparse_info):
Use an auto status, not static.
* src/tar.h (struct tar_stat_info): had_trailing_slash is
now bool, not int.
* src/xheader.c (sparse_offset_coder, sparse_numbytes_coder):
Rewrite to avoid cast.
(sparse_offset_decoder, sparse_numbytes_decoder):
Diagnose excess entries rather than crashing.
2005-06-23 06:55:01 +00:00
Paul Eggert
4f4a858eb6 * src/common.h (timespec_lt): Add a return type: bool. 2005-06-23 03:19:03 +00:00
Paul Eggert
d659cbaccd Carefully crafted invalid headers can cause buffer overrun.
Invalid header fields go undiagnosed.
Some valid time strings are ignored.

* NEWS: Better support for full-resolution time stamps.
The -v option now prints time stamps only to 1-minute resolution.
* gnulib.modules: Add utimens.
* lib/.cvsignore: Add imaxtostr.c, inttostr.c, inttostr.h,
offtostr.c, umaxtostr.c, utimens.c, utimens.h.  Remove paxconvert.c.
* lib/Makefile.tmpl (libtar_a_SOURCES): Remove paxconvert.c.
* lib/paxconvert.c: Remove; superseded by umaxtostr.c.
* po/POTFILES.in: Remove lib/paxconvert.c.  Add lib/xalloc-die.c,
lib/obstack.c.
* src/buffer.c (set_start_time, compute_duration, start_time):
Use gettime rather than rolling our own code.
* src/common.h (OLDGNU_NAME_FIELD_SIZE, MAXOCTAL11, MAXOCTAL7): Remove.
(newer_ctime_option): Remove.
(timespec_lt): New function.
(OLDER_STAT_TIME): Use it.
(string_to_chars): First arg is char const *, not char *.
(tartime): Time arg is now struct timespec.  New bool arg.
All callers changed.
(code_ns_fraction): New decl.
(sys_stat_nanoseconds): Remove decl.
(get_stat_atime, get_stat_ctime, get_stat_mtime): New functions.
(set_stat_atime, set_stat_ctime, set_stat_mtime): New functions.
* src/compare.c: Include utimens.h rather than rolling our own.
(diff_dir, diff_file, diff_link, diff_symlink, diff_special):
Prototype.
(diff_dumpdir, diff_multivol): Prototype.
(diff_file): Support higher-resolution time stamps.
* src/create.c: Include utimens.h rather than rolling our own.
(MAX_OCTAL_VAL): New macro.
(tar_copy_str, string_to_chars): Don't bother to zero-fill;
the destination is already zeroed.
(string_to_chars): First arg is char const *.
(start_private_header): Use MINOR_TO_CHARS, not MAJOR_TO_CHARS,
for minor device number.
(write_header_name, dump_hard_link, dump_file0):
Simplify test for old GNU format.
(start_header): Put in placeholders for uid, etc., even when
using extended headers, for benefit of older "tar" implementations.
Don't assume uintmax_t is wider than 32 bits.
Output extended header for mtime if needed.
(dump_regular_finish, dump_file0):
Support extended time stamp resolution.
* src/extract.c: Include utimens.h rather than rolling our own.
(check_time): Support extended time stamp resolution.
* src/list.c: Include <inttostr.h>.
(tartime): Use umaxtostr rather than stringify_uintmax_t_backwards.
* src/xheader.c: Include <inttostr.h>.
Do not include <xstrtol.h>.
(strtoimax) [!HAVE_DECL_STRTOIMAX && !defined strtoimax]: New decl.
(strtoumax) [!HAVE_DECL_STRTOUMAX && !defined strtoumax]: New decl.
(BILLION, LOG10_BILLION): New constants.
(to_decimal): Remove; superseded by inttostr.  All callers changed
to use umaxtostr.
(xheader_format_name): Don't assume pids and uintmax_t values
fit in 63 bytes (!) when printed.
(decode_record): Don't bother to check for ERANGE; an out of range
value must be treater than len_max anyway.
If the length is out of range, output it in the diagnostic.
(format_uintmax): Remove; all callers changed to use umaxtostr.
(xheader_print): Don't assume sizes can be printed in 99 bytes (!).
(out_of_range_header): New function.
(decode_time): Use it.
(code_time): Accept struct timespec, not time_t and unsigned long.
All callers changed.  Size sbuf properly, and remove unnecessary check.
Don't assume time stamps can fit in 199 bytes.
Handle negative time stamps.  Handle fractional time stamps
more consistently.  Don't output unnecessary trailing zeros.
(decode_time): Yield struct timespec, not time_t and unsigned long.
All callers changed.
Handle negative time stamps.  Truncate towards minus infinity
consistently.  Improve overflow checks, and output a better
diagnostic on overflow.
(code_num): Don't assume uintmax_t can be printed in 99 bytes (!).
(decode_num): New function, for better diagnostics.
(atime_coder, atime_decoder, gid_decoder, ctime_coder):
(ctime_decoder, mtime_coder, mtime_decoder, size_decoder):
(uid_decoder, sparse_size_decoder, sparse_numblocks_decoder):
(sparse_offset_decoder, sparse_numbytes_decoder):
Use decode_num, etc., instead of xstrtoumax, etc.

* src/xheader.c (sparse_numblocks_decoder): Remove unchecked use
of `calloc'.  Use xcalloc instead.
(decode_time, gid_decoder, size_decoder, uid_decoder):
(sparse_size_decoder, sparse_offset_decoder, sparse_numblocks_decoder):
Ensure that the result of calling xstrtoumax is no larger than
the maximum value for the target type.  Upon any failure, exit with
a diagnostic.
(sparse_numblocks_decoder): Avoid buffer overrun/heap corruption:
use x2nrealloc, rather than `n *= 2' and xrealloc(p, n,....
(decode_time): Rewrite to accept time strings like
1119018481.000000000.  Before, such strings were always ignored.
2005-06-22 06:24:39 +00:00
Sergey Poznyakoff
f6445e4ed6 Updated 2005-06-13 19:14:52 +00:00
Sergey Poznyakoff
28b44cc69c Updated 2005-06-13 12:54:45 +00:00
Paul Eggert
5c4ea58bd7 * src/names.c (excluded_name): excluded_filename ->
excluded_file_name, because the name was changed in gnulib.
2005-06-02 21:02:58 +00:00
Sergey Poznyakoff
85ad04d822 Updated 2005-05-30 15:15:25 +00:00
Sergey Poznyakoff
ab03bd6a2c Updated 2005-05-30 13:38:21 +00:00
Sergey Poznyakoff
e5e43aa7a4 Updated 2005-05-26 12:51:18 +00:00
Sergey Poznyakoff
ee870c97b9 Updated 2005-05-21 23:13:38 +00:00
Sergey Poznyakoff
e20fdceb38 Updated 2005-05-19 15:35:14 +00:00
Paul Eggert
1672258959 * src/misc.c (remove_any_file): Fix typo in previous change. 2005-05-17 08:34:16 +00:00
Paul Eggert
46f09016e8 Port to Solaris 10's treatment of unlinking directories.
* gnulib-modules: Add unlinkdir.
* lib/.cvsignore: Add unlinkdir.h, unlinkdir.c.
* src/common.h (we_are_root): Remove extern decl; it's now static.
* src/extract.c (we_are_root): Now static.
* src/misc.c: Include <unlinkdir.h>.
(remove_any_file): Use cannot_unlink_dir () rather than	we_are_root.
2005-05-15 06:23:49 +00:00
Paul Eggert
120e96c480 Update FSF postal mail address. 2005-05-15 03:59:08 +00:00
Sergey Poznyakoff
271ed97494 Updated 2005-05-12 15:46:40 +00:00
Paul Eggert
ecac16a4a0 * src/incremen.c (hash_directory): Likewise.
* src/names.c (hash_string_hasher): Likewise.
* src/tar.c (parse_opt): Set it, and adjust to new modechange API.
2005-05-02 08:03:02 +00:00
Paul Eggert
e2c431e9c2 Adjust to recent gnulib changes. 2005-05-02 07:36:26 +00:00
Sergey Poznyakoff
3ab983facf Updated 2005-04-19 09:06:07 +00:00
Paul Eggert
27b98aa8ae * src/buffer.c (reading_from_pipe): Remove. All uses removed.
(short_read): Don't warn about short reads; they're normal.
* tests/shortrec.at: New file.
* tests/testsuite.at: Include it.
2005-04-18 18:21:50 +00:00
Paul Eggert
005d0d455c Use UTF-8 uniformly, rather than UTF-8 sometimes and Latin-1 sometimes. 2005-04-16 07:22:13 +00:00
Sergey Poznyakoff
a71807a247 Updated 2005-04-14 13:14:56 +00:00
Sergey Poznyakoff
8f9ecca0db Updated 2005-04-07 17:29:45 +00:00
Paul Eggert
5fe7f641e8 Rename config/ to build-aux/. 2005-04-04 18:35:53 +00:00
Paul Eggert
dbf96ec903 Spelling fixes. 2005-04-04 18:31:44 +00:00
Paul Eggert
5d87077565 * src/buffer.c: Fix struct zip_magic to avoid problems with pedantic
C compilers.  Make 'magic' const and redo it to save alignment and space.
2005-04-04 18:22:44 +00:00
Paul Eggert
ad0bd3c9c4 * src/xheader.c (decode_record): Don't dump core when given
a corrupted extended header.
2005-04-02 06:39:37 +00:00
Paul Eggert
67c7284d07 * bootstrap (TP_URL): Change from
<http://www2.iro.umontreal.ca/~gnutra/po/maint/tar/> to
<http://www.iro.umontreal.ca/translation/maint/tar/> to avoid
some redirection glitches.
Use "trap - 0" rather than "trap 0" to fix a POSIX-conformance bug.
* doc/.cvsignore: Change "tar.info" to "tar.info*".  Sort.
2005-03-21 21:56:02 +00:00
Sergey Poznyakoff
6811232d8f Updated 2005-03-03 23:17:07 +00:00
Sergey Poznyakoff
002cd6843a Updated 2005-02-15 15:25:14 +00:00
Sergey Poznyakoff
e7e66c4426 Updated 2005-02-15 14:47:06 +00:00
Sergey Poznyakoff
1d804e4f68 Updated 2005-02-10 22:53:22 +00:00
Sergey Poznyakoff
371af209a7 Updated 2005-02-06 20:02:23 +00:00
Sergey Poznyakoff
ef68503367 Updated 2005-02-05 22:25:50 +00:00
Sergey Poznyakoff
c580a1c407 Updated 2005-02-05 10:49:26 +00:00
Paul Eggert
a6f6974f75 Improved checksum diagnostics; adjust to gnulib changes. 2005-02-04 01:52:48 +00:00
Sergey Poznyakoff
5422166048 Updated 2005-02-04 01:43:41 +00:00
Sergey Poznyakoff
87a7b31a82 Updated 2005-02-04 00:05:46 +00:00
Sergey Poznyakoff
2fcd454e17 Updated 2005-02-03 16:29:58 +00:00
Sergey Poznyakoff
ce852113e0 Updated 2005-02-03 00:06:34 +00:00