skrll
ef95ae4a36
Fix previous
2018-10-27 11:39:12 +00:00
christos
41c9b009a9
Add lzip support to gzip based on the example lzip decoder.
2018-10-26 22:10:15 +00:00
martin
3871bbe7ed
Add -l support for xz files
2018-10-06 16:36:45 +00:00
kamil
2760f15b81
Correct Undefined Behavior in gzip(1)
...
Unportable left shift reported with MKSANITIZER=yes USE_SANITIZER=undefined:
# progress -zf ./games.tgz tar -xp -C "./" -f -
/public/src.git/usr.bin/gzip/gzip.c:2126:33: runtime error: left shift of 251 by 24 places cannot be represented in type 'int'
100% |****************************************************************************************************************| 44500 KiB 119.69 MiB/s 00:00 ETA
Refactor the following code into something that is more clear
and fix signed integer shift, by casting all buf[] elements to
(unsigned int):
unsigned char buf[8];
uint32_t usize;
[...]
else {
usize = buf[4] | buf[5] << 8 |
buf[6] << 16 | buf[7] << 24;
[...]
New version:
usize = buf[4];
usize |= (unsigned int)buf[5] << 8;
usize |= (unsigned int)buf[6] << 16;
usize |= (unsigned int)buf[7] << 24;
Only the "<< 24" part needs explicit cast, but for consistency make the
integer promotion explicit and clear to a code reader.
Sponsored by <The NetBSD Foundation>
2018-06-12 00:42:17 +00:00
christos
13a9a3bb6f
now that we are processing SIGINFO write can be interrupted and return
...
partial results (well, it could before too but it was harder to trigger);
provide write_fully like we have read_fully already.
2017-08-23 13:04:17 +00:00
mrg
5e22a92ec6
add SIGINFO support.
2017-08-04 07:27:08 +00:00
mrg
99f85f4578
update copyright strings.
2017-06-03 21:28:48 +00:00
mrg
60c6cf919b
port across the change from freebsd rev 290024:
...
In gunzip(1), treat trailing garbage as a warning and not an error. This
allows scripts to distinguish it between real fatal errors, for instance a
CRC mismatch.
Update manual page for the behavior change.
PR: bin/203873
Submitted by: Eugene Grosbein <eugen grosbein net>
MFC after: 2 weeks
2015-10-27 07:36:18 +00:00
christos
d6eaf99167
Coverity CID 1264915, Via FreeBSD (Xin Li)
...
When reading in the original file name from gzip header, we read
in PATH_MAX + 1 bytes from the file. In r281500, strrchr() is
used to strip possible path portion of the file name to mitigate
a possible attack. Unfortunately, strrchr() expects a buffer
that is NUL-terminated, and since we are processing potentially
untrusted data, we can not assert that be always true.
Solve this by reading in one less byte (now PATH_MAX) and
explicitly terminate the buffer after the read size with NUL.
2015-04-15 02:29:12 +00:00
mrg
a1b1261ab6
do not use directory paths present in gzip files with the -N flag,
...
similar to the problem reported in pigz.
2015-01-13 02:37:20 +00:00
snj
f0a7346d21
src is too big these days to tolerate superfluous apostrophes. It's
...
"its", people!
2014-10-18 08:33:23 +00:00
joerg
7e57d8fe3f
Use __printflike and __dead.
2011-08-30 23:06:00 +00:00
christos
90f7aa069d
add noreturn atttribute.
2011-08-17 14:07:31 +00:00
joerg
8cba5925cb
Add a few explicit casts for sign mismatches.
2011-06-21 13:25:45 +00:00
christos
5708f444da
recognize .xz suffix
2011-06-19 02:19:09 +00:00
tsutsui
7c8d31ee49
XZ_SUPPORT requires maybe_errx().
2011-06-19 01:20:19 +00:00
christos
40b41259f0
Add lzma (.xz) support. Somehow this does not decode after the first read yet.
2011-06-19 00:43:54 +00:00
tsutsui
784931d63b
Fix OPT_LIST. -t is not available in SMALL case.
2011-03-23 12:59:44 +00:00
mrg
77a6c12f15
pull across a few changes from the freebsd folks:
...
http://svn.freebsd.org/changeset/base/213044
- fixes gunzip issues
http://svn.freebsd.org/changeset/base/213927
- fixes various typos and comments
and also an older change to add support for bzip2's "-k" option:
don't delete the input file
thanks!
2010-11-06 21:42:32 +00:00
mrg
5e3404f76c
update version to today.
2009-10-11 09:17:21 +00:00
mrg
205ea56f45
avoid an overflow in suffix handling, from Xin LI <delphij@delphij.net>.
2009-10-11 07:09:39 +00:00
mrg
569ceba59d
add "pack" uncompression support, from Xin LI <delphij@delphij.net>
2009-10-11 07:07:54 +00:00
lukem
f143270c8d
fix sign-compare issues
2009-04-12 10:31:14 +00:00
skrll
38af541845
WARNS=3
2008-08-03 09:25:05 +00:00
lukem
98e5374ccb
Remove the \n and tabs from the __COPYRIGHT() strings.
...
Tweak to use a consistent format.
2008-07-21 14:19:20 +00:00
mrg
c2b95373bf
remove clause #3 from my license where there are no other
...
copyright holders involved.
2008-05-29 14:51:25 +00:00
martin
6bcac52d39
Apply fix from PR bin/35526 from Xin LI: fix typo in message
2007-01-31 08:23:22 +00:00
mrg
bb915868b8
properly detect when the output fails (eg, full filesystem) and do not
...
delete the input file. patch from PR#35048.
2006-11-13 21:57:59 +00:00
mrg
712a3f3aae
wrap a long line
2006-10-25 04:44:39 +00:00
mlelstv
0ce7ae1e3c
End a decompression when trailing garbage is found. It emits a warning
...
message and causes a non-zero exit status (similar to GNU gzip).
Fixes PR bin/33045.
2006-10-13 20:17:46 +00:00
mlelstv
a3ee681f33
Abort decompression with an error when EOF is reached on input. The
...
test output will then be 'NOT OK'. Fixes PR bin/32933.
2006-10-13 20:16:32 +00:00
mrg
33c0ea44b6
redo the previous, based on a comment from and reviewed by christos.
2006-09-27 22:20:31 +00:00
mrg
b1906bf12d
redo previous: move the EOF check back into non-dead code so that it
...
will be used again.
2006-09-27 21:02:38 +00:00
christos
0bcef42677
Coverity CID 4073: Delete impossible code.
2006-09-27 19:09:14 +00:00
mrg
70e8425daf
properly check the return value of read() & pread(). PR#26688.
2006-07-13 11:51:39 +00:00
wiz
2f70583592
Remove unhandled H option from getopt() argument.
...
Describe -l in usage. Both from Igor Sobrado in private mail.
While here, sort options.
2005-12-13 10:02:04 +00:00
he
b5d827cee2
Use of ``vflag'' should be protected by #ifndef SMALL.
2005-11-23 18:34:51 +00:00
mrg
426bb686c4
due to popular demand, don't warn about >4GB files not having their
...
size correctly stored. PR#32105 among other requests.
2005-11-22 09:07:03 +00:00
mrg
e3969e9f13
apply a patch from onno van der linden in PR#32070 that fixes
...
these problems:
1) gzip -vt just prints the contents of a .Z file
2) gzip -vt will print OK even if the .gz file is corrupt
3) gzip -vt prints nothing with a .bz2 file
4) gzip can loop endlessly with a corrupt .bz2 file
2005-11-22 09:05:29 +00:00
mrg
1a05f328bc
apply a patch from christian biere:
...
- if we have an open fd, use it instead and, eg, fstat(2), of the file name
and stat(2).
- signed/unsigned variable fixes
- misc. cleanup
2005-09-20 05:12:15 +00:00
mrg
84cb5f3013
oops. fix previous by keeping the stat() inside #ifndef SMALL. pointed
...
out by dsl.
2005-09-15 18:51:33 +00:00
mrg
bdc7967496
in file_compress() always stat() the input file. this patch avoids
...
reading from uninitialised space as provided by John Hein in PR#28995.
2005-09-15 09:30:21 +00:00
mrg
5c0ab9e0af
fix signed/unsigned mismatch reported by Christian Biere in PR#31180
...
using his provided patch.
2005-09-15 09:11:30 +00:00
mrg
cde2923d5b
avoid an infinite loop while decompressing invalid gzip files.
...
some minor CSE. compare stat return value consistently.
thanks to tron for testing the first change.
2005-08-28 10:17:50 +00:00
lukem
6b5252b15f
Fix numerous uninitalized variables.
...
Detected with gcc -Wuninitialized.
2005-06-02 01:51:58 +00:00
yamt
751e975bfc
handle partial reads. PR/29484.
2005-02-22 21:45:44 +00:00
enami
4cc9b2f8f4
Fix parsing of $GZIP so that not to overrun the end of string.
...
Addesses PR#28779. Fix is slightly different that suggested in the PR
since it fails if $GZIP contains whitespace.
2005-01-31 09:11:49 +00:00
jmc
40c0737463
Fixed for PR#28581. If stdin is the input stream, fstat it and check if it's
...
file. If so, use it's mtime for the mtime in the header. Otherwise use
time(2)'s result instead. Lines up with GNU gzip and RFC 1952 now as well.
2004-12-08 06:38:40 +00:00
dsl
2c25900b60
Don't abort decompression if there are no bytes in the output buffer
...
when the end of compressed block (ie the crc) is reached.
(ie when decompressing concatenated zipped files).
Fixes PR bin/27153
2004-10-08 12:46:24 +00:00
dsl
abc7a82e52
Count the output file size modulo 2^32 so that the check against the size
...
in the compressed file works for files greater than 4GB.
Fixes the fixable part of bin/26907
2004-09-11 11:07:44 +00:00