diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2007-04-11 01:40:19 +0400 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2007-04-11 01:40:19 +0400 |
commit | c6758a07c68033627a692cda27aebc8f6a662e7f (patch) | |
tree | 51bc0b498a5e16f8041604d913e25708cc76058f /libbb/crc32.c | |
parent | 335b63d8d1876ce4e172ebcc9d64544785682244 (diff) |
make compressed help code NOMMU- and NOFORK-friendly -
no forking anymore, bunzip2 unpack routine now does all it in memory.
Diffstat (limited to 'libbb/crc32.c')
-rw-r--r-- | libbb/crc32.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/libbb/crc32.c b/libbb/crc32.c index 1e4a57e8a..acbc45827 100644 --- a/libbb/crc32.c +++ b/libbb/crc32.c @@ -16,14 +16,15 @@ #include "libbb.h" -uint32_t *crc32_filltable(int endian) +uint32_t *crc32_filltable(uint32_t *crc_table, int endian) { - - uint32_t *crc_table = xmalloc(256 * sizeof(uint32_t)); uint32_t polynomial = endian ? 0x04c11db7 : 0xedb88320; uint32_t c; int i, j; + if (!crc_table) + crc_table = xmalloc(256 * sizeof(uint32_t)); + for (i = 0; i < 256; i++) { c = endian ? (i << 24) : i; for (j = 8; j; j--) { |