Commits on Apr 16, 2012
Commits on Apr 15, 2012
  1. Oops.

    committed Apr 15, 2012
  2. Update .gitignore.

    committed Apr 15, 2012
  3. Add OS type output for Amiga archives.

    Also enable checking for Amiga level1.lzh file.
    committed Apr 15, 2012
Commits on Apr 14, 2012
  1. Add level 3 header decoding.

    committed Apr 14, 2012
  2. Rework MS-DOS all-caps filename handling.

    MS-DOS all-caps filenames should be converted to lower case. Rework
    to correctly handle the way that level 2/3 headers handle filenames.
    committed Apr 14, 2012
Commits on Apr 13, 2012
  1. Make directory entry handling consistent.

    Make file headers for directories (-lhd-) have a NULL filename when
    read from a level 0/1 header, for consistency with level 2/3 headers.
    Fix various code that assumes a non-NULL filename and sanity check to
    ensure one of either path or filename is always non-NULL.
    committed Apr 13, 2012
Commits on Apr 12, 2012
  1. Parse level 2 file headers.

    committed Apr 12, 2012
  2. Refactor file header parsing.

    Change the way that headers are parsed, to not make assumptions
    that are level 0/1-specific. This will allow level 2/3 decoding to
    be added.
    committed Apr 12, 2012
Commits on Apr 11, 2012
  1. Only build fuzzer when doing 'make check'.

    Fixes failing compile when doing a straight 'make'. (Thanks
    Bastien Dejean)
    committed Apr 11, 2012
Commits on Apr 10, 2012
  1. Fix corner case found in fuzz testing.

    If a new block is started with a length of zero, the count would
    be subtracted leading to an integer wraparound, with the result
    that the program could continue generating data indefinitely
    without any input. Use a while() loop to ensure that the new
    block has a size greater than zero, beginning a new block again
    immediately if an empty one is encountered.
    committed Apr 10, 2012
  2. Add option to run decompressor input from file.

    Allows the dumped input from failing tests to be re-run and
    committed Apr 10, 2012
Commits on Apr 9, 2012
  1. Refactor, dump input on crash or stall.

    Throw an alarm after 5 minutes if an iteration of the fuzz test does
    not complete, and dump the input to a file. Do the same when a SIGSEGV
    is thrown.
    committed Apr 9, 2012
  2. Strip down fuzz test code and simplify.

    Genetic algorithm stuff is unnecessary now that the bit stream reader
    bug has been fixed. Just generate a block of random data and feed it
    into the decompressor.
    committed Apr 9, 2012
  3. Add canary blocks around allocations.

    When fuzz testing, check that memory outside the structures used by the
    decompressors is not overwritten.
    committed Apr 9, 2012
Commits on Apr 8, 2012
  1. Fix bug when reading small amounts.

    If the callback function used to read new data alwas returns a single
    byte, several of the decompressors will fail. Rework the peek_bits
    function in the bit stream reader code to repeatedly read more bytes.
    committed Apr 8, 2012
Commits on Apr 6, 2012
  1. Add missing #include.

    committed Apr 6, 2012
  2. Move POSIX dependencies into lib/arch code.

    Most POSIX functions are now accessed through the lha_arch.h abstraction
    layer, which hides the underlying OS.
    committed Apr 6, 2012
  3. Add test for dry run output.

    committed Apr 6, 2012
  4. Fix dry run output.

    committed Apr 6, 2012
Commits on Apr 5, 2012
  1. Safely escape potentially malicious filenames.

    A malicious filename might contain escape characters that be
    interpreted by some terminal emulators in harmful ways. Escape
    all unsafe data when printing to the screen and add archive
    file for regression testing.
    committed Apr 5, 2012
  2. Refactor extract code to always use relative paths.

    For security reasons, paths for extracted files should always be
    relative paths, so that arbitrary files cannot be overwritten.
    committed Apr 5, 2012
Commits on Apr 3, 2012
Commits on Apr 2, 2012
  1. Add implementation of 'v' list option.

    Output is different when the 'v' option is added (-lv / -vv). Add
    new column definitions for this output mode and expected outputs for
    the test archives.
    committed Apr 2, 2012
Commits on Apr 1, 2012