Commit Graph

58 Commits

Author SHA1 Message Date
riastradh 9783666546 Fix vndcompress restart failure fallback when input is a pipe.
Defer seeking the *input* image, or winding it forward, until we are
certain we all ready in the cloop2 output, because when the input
image is a pipe, we don't get a chance to seek back to the beginning
and start from the top instead of restarting.

If restart does fail, don't try to seek the input image back to the
beginning unless we had already tried to seek or wind it forward.

Add some automatic tests for this and related cases.

XXX pullup to netbsd-7, netbsd-6
2014-11-18 03:48:17 +00:00
riastradh 3a07c2a841 Get SIZE_MAX and OFF_MAX straight... 2014-01-25 16:38:15 +00:00
riastradh 482c113d44 Factor out an offtab_compute_window_position routine. 2014-01-25 16:26:17 +00:00
riastradh 0853010545 Fix some more integer overflow/truncation issues.
Arithmetic in C is hard.  Let's go shopping!
2014-01-25 15:31:06 +00:00
christos 115b322731 CID 1164169: integer overflow 2014-01-24 17:30:18 +00:00
joerg eecb404dbe Mark offtab_bug[x] as dead. 2014-01-23 14:17:05 +00:00
riastradh 380386c8de Fix $NetBSD$ tag. 2014-01-22 14:25:07 +00:00
riastradh 708b399e9d Bump date on vndcompress(1) man page. 2014-01-22 06:18:17 +00:00
riastradh 18fe60ee74 Fix vndcompress man page to reflect default window size. 2014-01-22 06:18:09 +00:00
riastradh f13ecd80a5 Change vndcompress to use a default window size of 512.
For vnduncompress on nonseekable input, the window size is as large
as it needs to be by default, as before.  Not clear that this is the
right choice -- by default vnduncompress on nonseekable input will
just use unbounded memory unsolicited.
2014-01-22 06:18:00 +00:00
riastradh 120dc04ff6 Document the new vndcompress -w option and nuke BUGS section.
Perhaps vndcompress and vnduncompress ought by default to choose a
limited window size (say, 8192 entries, i.e. 64k bytes, the default
MAXPHYS), and vnduncompress should fall back to an unlimited window
only if the input is nonseekable.
2014-01-22 06:17:51 +00:00
riastradh a7ef6dc75a Reflect rename of `-s' to `-b' in the vndcompress man page. 2014-01-22 06:17:42 +00:00
riastradh dc88592abd Move err1 & errx1 to the end of vnduncompress.c; add __printflike. 2014-01-22 06:17:34 +00:00
riastradh 9aa3cfafcd Rename block size option from `-s' to `-b'.
Makes more sense and makes it consistent with other utilities such as
pax and pigz.  This vndcompress has never gone out in a release, so
changing the name of the option shouldn't cause too many problems...
2014-01-22 06:17:25 +00:00
riastradh a4a41d7780 Simplify vndcompress offtab_compute_window_size. 2014-01-22 06:17:16 +00:00
riastradh a0dfc29413 Fix typo in comment. 2014-01-22 06:17:07 +00:00
riastradh c803c22d4c Fix up ulimited vndcompress tests and explain what's up with them. 2014-01-22 06:16:59 +00:00
riastradh 02796a4937 Add some simple automatic tests for window sizes. 2014-01-22 06:16:50 +00:00
riastradh 6ae2f589bf Remove silly comment in offtab_reset_write. 2014-01-22 06:16:41 +00:00
riastradh 7dc3ecc300 Window size is now an option; remove XXX comment to the contrary. 2014-01-22 06:16:32 +00:00
riastradh a3d8273010 Add comment explaining why piperestart.cl2part is allowed to fail. 2014-01-22 06:16:23 +00:00
riastradh e70e005842 Split guard in offtab_write_window into offtab_maybe_write_window. 2014-01-22 06:16:14 +00:00
riastradh a3544454a1 Seek if necessary at end of offtab_reset_read.
Fixes vnduncompress with a small window, and makes offtab_reset_read
symmetric with offtab_reset_write.
2014-01-22 06:16:05 +00:00
riastradh 7c5bfcbe34 Add option -w to vnd(un)compress to specify the window size. 2014-01-22 06:15:57 +00:00
riastradh 1c2cd5c047 Add some leading zero digits to the flags. Cosmetic change only. 2014-01-22 06:15:48 +00:00
riastradh c9b17454f7 Add WARNS=5. 2014-01-22 06:15:39 +00:00
riastradh 5b1eaed138 Judicious (and justified) casts to avoid signed/unsigned comparisons. 2014-01-22 06:15:31 +00:00
riastradh 3e40e9d7d6 Implement machinery for fixed-size windows into the offset table. 2014-01-22 06:15:22 +00:00
riastradh 519e5b52f0 Write offsets in hexadecimal, not decimal. 2014-01-22 06:15:12 +00:00
riastradh 6e96c4ea68 Move block_signals/restore_sigmask to utils.c 2014-01-22 06:15:04 +00:00
riastradh 28c82fe6ee Use write-to-temporary/rename-to-permanent pattern in Makefile. 2014-01-22 06:14:55 +00:00
riastradh 735c239796 Abstract handling of the cloop2 offset table.
Preparation for converting it to use a fixed-size window.
2014-01-22 06:14:46 +00:00
riastradh b06b564040 Use read_block instead of read in vnduncompress. 2014-01-22 06:14:28 +00:00
riastradh d99bda47ef Move vndcompress utilities to utils.c. 2014-01-22 06:14:20 +00:00
riastradh 573999a972 Fail if malloc can't allocate offset table. 2014-01-22 06:14:03 +00:00
dholland 7899f1dc15 Remove redundant WARNS=5. 2013-08-11 06:32:13 +00:00
riastradh 31eb87b9b9 Make partial read/write error messages more consistent in vndcompress. 2013-05-06 22:53:24 +00:00
riastradh 4b4929c1fa Add __printflike to vsnprintf_ss. 2013-05-04 15:37:39 +00:00
riz e3748ff50d 'unsigned long' prints with %lu, not %zu. 2013-05-04 15:27:39 +00:00
riastradh 2552c7f866 Add -l option to synopsis for vndcompress(1) man page. 2013-05-04 14:34:13 +00:00
riastradh 2f16fbbee5 Fix sign-compare in compress_blocks.
Not sure why my builds didn't reveal this one -- they revealed
several others during development.
2013-05-04 14:29:48 +00:00
joerg 72bd42b73b __printflike for vwarnx_ss, __dead for err_ss and errx_ss. 2013-05-04 10:21:27 +00:00
wiz 5d2fa123b0 Sort. Add EXIT STATUS section. 2013-05-04 07:13:23 +00:00
riastradh 85bbc49a09 Rewrite vndcompress to support SIGINFO and restart after interrupt.
Make it generally more robust in the process.

No objection (or comment) on tech-userlevel.

ok christos
2013-05-03 23:28:15 +00:00
wiz b5d2b90f6c Improve wording, fix typo, bump date.
From Bug Hunting.
2012-07-08 22:48:32 +00:00
joerg 505c5e5515 Use static and __dead 2011-09-06 18:45:04 +00:00
lukem c1ceae17f0 Enable WARNS=4 by default for usr.bin, except for:
awk  bdes  checknr  compile_et  error  gss  hxtool  kgetcred  kinit
	klist  ldd  less  lex  locale  login  m4  man  menuc  mk_cmds
	mklocale  msgc  openssl  rpcgen  rpcinfo  sdiff  spell  ssh
	string2key  telnet  tn3270  verify_krb5_conf  xlint
2009-04-14 22:15:16 +00:00
lukem 19ffb16ab2 Fix another sign-compare issue 2009-04-14 07:36:16 +00:00
lukem 49d68c2eee fix sign-compare issues 2009-04-14 07:28:23 +00:00
dyoung 4c39af2f02 Take a small step toward making vndcompress into a host tool:
remove #include <arpa/inet.h> and use bswap32() instead of ntohl().
2008-02-18 03:34:04 +00:00