Denis Vlasenko
89af56b3e5
gzip cleanup part #9
2007-01-07 19:40:34 +00:00
Denis Vlasenko
52933d47bd
gzip cleanup part #8
2007-01-07 19:40:13 +00:00
Denis Vlasenko
ef87d46b8c
gzip cleanup part #7
2007-01-07 19:39:54 +00:00
Denis Vlasenko
1a03c21adf
gzip cleanup part #6
2007-01-07 19:39:34 +00:00
Denis Vlasenko
da31fbc1b1
gzip cleanup part #5
2007-01-07 19:39:02 +00:00
Denis Vlasenko
f824136f6b
gzip cleanup part #4
2007-01-07 19:38:42 +00:00
Denis Vlasenko
ed0f6db35e
gzip cleanup part #3
2007-01-07 19:38:26 +00:00
Denis Vlasenko
30551fd6da
gzip cleanup part #2
2007-01-07 19:38:06 +00:00
Denis Vlasenko
ad403413c7
a ton of gzip changes, split up in compiled and
...
run-tested pieces. Code was rather messy.
It's not a bug fix, more like code cleanup.
This is the first part.
2007-01-07 19:37:42 +00:00
Denis Vlasenko
da98165ad6
kill unused variable
2007-01-06 01:27:24 +00:00
Denis Vlasenko
c7a4aa5c99
move [g]zip decompressor state into malloc'ed buffer. size:
...
text data bss dec hex
5256 0 108 5364 14f4 - old
4915 0 0 4915 1333 - new
2007-01-06 00:03:11 +00:00
Denis Vlasenko
d1a19affeb
split inflate_xx_setup() subroutines from inflate_xx()
2007-01-05 23:58:45 +00:00
Denis Vlasenko
cd42cb8df0
do not expose internal state of [g]zip unpacker.
...
fix memory leak in inflate_gunzip.
2007-01-05 23:56:53 +00:00
Denis Vlasenko
447b543eaf
Stopped doing assignments inside expressions.
...
Who wrote this gem, I wonder?
n -= (e = (e = gunzip_wsize - ((d &= gunzip_wsize - 1) > w ? d : w)) > n ? n : e);
2007-01-05 19:49:02 +00:00
Denis Vlasenko
cc33ef12d2
decompress_unzip: preparatory patch
2007-01-05 19:46:04 +00:00
Denis Vlasenko
3376298b59
Stop tracking buffer size - it is a constant.
...
Stop ignoring write errors.
Fix bugs in this line:
rc->buffer_size = read(rc->fd, RC_BUFFER, rc->buffer_size);
(a) should use safe_read()
(b) just ONE short read (e.g. 4 bytes) will make ALL future reads short!
2007-01-05 14:04:47 +00:00
Denis Vlasenko
98b8e9487d
simplify access to buffer, making code a bit smaller
2007-01-05 13:59:05 +00:00
Bernhard Reutner-Fischer
bfe1950c63
- spelling fix
2007-01-04 15:44:49 +00:00
Denis Vlasenko
bb3d0fab3b
extern variable declaration in a .c file is heresy - fixing it
2007-01-03 01:57:25 +00:00
Denis Vlasenko
3bba545a54
done a dozen of randconfig test. guess what? ALL failed...
...
these are resulting fixes
2006-12-30 17:57:03 +00:00
Denis Vlasenko
9a44c4f91c
bb_xget[pw/gr]nam were horribly misnamed - fixed.
...
uidgid_get -> get_uidgid, add additional param
(numeric_ok). Make chown use it.
chown: fix "chown user: ...."
install: fix incorrect use of bb_xget[pw/gr]nam
2006-12-28 05:44:47 +00:00
Denis Vlasenko
666da5e2c6
merge post-1.3.0 fixes
2006-12-26 18:17:42 +00:00
Denis Vlasenko
bf0a201008
style fixes
...
last xcalloc replaced by xzalloc
2006-12-26 10:42:51 +00:00
Denis Vlasenko
4cccc03768
remove useless casts (type*) xzalloc(...)
2006-12-22 18:37:07 +00:00
Denis Vlasenko
a6df5907d2
dpkg: getopt32-ification etc, -100 bytes
2006-12-22 18:32:40 +00:00
Denis Vlasenko
f4c52b32db
rpm: reformat. was really hard to read
2006-12-22 15:03:50 +00:00
Denis Vlasenko
afc9ff99fd
removal of commented-out cruft
2006-12-22 00:45:27 +00:00
Denis Vlasenko
714701c890
tar et al: die if bb_copyfd_size copies less than asked for.
...
(we have bb_copyfd_exact_size now for that kind of usage)
2006-12-22 00:21:07 +00:00
Denis Vlasenko
b95636c52f
remove casts from xmalloc()
2006-12-19 23:36:04 +00:00
Denis Vlasenko
83e5d6f772
A bunch of defined(__GLIBC__) added. static-linking warning expanded
2006-12-18 21:49:06 +00:00
Denis Vlasenko
c88894602d
tar: report error if child dies while writing out the end of tarball
...
(e.g. out of disk space).
2006-12-17 19:08:20 +00:00
Denis Vlasenko
9f739445cd
inline strcmp(s, "-") [actually macro-ize it for now - gcc is too stupid]
2006-12-16 23:49:13 +00:00
Denis Vlasenko
a597aaddfa
s/extern inline/static ATTRIBUTE_ALWAYS_INLINE/g
...
xstrtou: disallow leading '+'
2006-12-16 23:48:13 +00:00
Bernhard Reutner-Fischer
6f0540e7ec
- remove functions marked as LEGACY in SUSv3 and use their modern counterparts.
2006-12-12 11:50:44 +00:00
Denis Vlasenko
c61852a02b
fix support for globally disabling --long-options.
...
(disabling them saves ~4K on fully configured bbox)
2006-11-29 11:09:43 +00:00
Denis Vlasenko
30d7a346e6
tar: fix misplaced --exclude long option definition
2006-11-27 20:24:40 +00:00
Denis Vlasenko
d9e15f2068
style cleanup: return(a) -> return a, part 2
2006-11-27 16:49:55 +00:00
Denis Vlasenko
079f8afa0a
style cleanup: return(a) -> return a, part 1
2006-11-27 16:49:31 +00:00
Denis Vlasenko
cf749bc10c
small fixes:
...
fix xstrdup to not grossly overallocate memory
use xopen instean of xopen3 in several places
etc.
2006-11-26 15:45:17 +00:00
Denis Vlasenko
c1660fea6d
tar: refuse to untar files with "/../" components
2006-11-26 15:42:03 +00:00
Denis Vlasenko
b596335868
tar: correctly skip (and warn about) pax headers.
...
plug memory leak. save 50 bytes.
Wooohooo! we finally can unpack kernel tarballs!
2006-11-26 01:46:59 +00:00
Denis Vlasenko
7725d0ff5c
tar: add support for FEATURE_TAR_GNU_EXTENSIONS so than we can save
...
long names now. We were able to read such tars, but not create.
+275 bytes. Without FEATURE_TAR_GNU_EXTENSIONS: -25 bytes.
We still cannot unpack Linux kernels, but not for long ;)
2006-11-25 23:56:50 +00:00
Denis Vlasenko
87cd4a87e3
tar: small fix and small optimization
2006-11-25 23:47:32 +00:00
Denis Vlasenko
f2408e6c3f
tar: abort if tarring up file larger that 64Gb
...
(otherwise we will produce garbled tarfile)
2006-11-25 14:48:09 +00:00
Denis Vlasenko
3feb2fc535
tar: fix multiple -t and/or -v options handling.
...
do not process list of files to tar up in reverse order.
2006-11-24 21:55:55 +00:00
Denis Vlasenko
d031ffa623
tar: sanitize option handling
2006-11-24 21:54:44 +00:00
Denis Vlasenko
b833ca9d2d
tar: buglet fix
2006-11-24 18:53:13 +00:00
Denis Vlasenko
d6772501db
tar: fix and sanitize handling of long filenames/linknames
...
(GNU extensions 'K' and 'L').
We correctly handle them when untarring now, but unfortunately
we still don't use them when tarring! That stupid 100 char limit
is still there!
The biggest problem is that we don't support 'pax' tar format.
Linux kernel tarballs are in this format... shame
2006-11-24 17:21:44 +00:00
Denis Vlasenko
b8a8e601df
tar: small fixes:
...
* size-optimize mapping code
* kill double close
2006-11-24 14:59:45 +00:00
Denis Vlasenko
c50f370f98
tar: cache [ug]id->username/groupname mappings. Cuts down amount
...
of open/read/close of /etc/passwd and /etc/group
dramatically (we were rereading those for each untarred file!!!)
2006-11-24 14:57:31 +00:00