lzma_stream stream;
int done;
- // XXX This should actually be larger than one byte, but fread()
- // in _xz_read() somehow segfaults when this is larger
- uint8_t buffer[1];
+ uint8_t buffer[1048576];
};
static ssize_t _xz_read(void* data, char* buffer, size_t size) {
if (cookie->stream.avail_in == 0) {
cookie->stream.next_in = cookie->buffer;
cookie->stream.avail_in = fread(cookie->buffer,
- 1, sizeof(cookie->buffer), cookie->f);
+ 1, sizeof(*cookie->buffer), cookie->f);
// Break if the input file could not be read
if (ferror(cookie->f))