void *compressed_chunk = NULL;
unsigned compressed_size;
bool compressed_chunk_malloced = false;
- size_t stack_max = 32768;
if (ctx->doing_sha)
sha1_update(&ctx->sha_ctx, chunk, chunk_size);
if (ctx->out_ctype != WIMLIB_COMPRESSION_TYPE_NONE) {
/* Compress the chunk. */
- if (chunk_size <= stack_max) {
+ if (chunk_size <= STACK_MAX) {
compressed_chunk = alloca(chunk_size);
} else {
compressed_chunk = MALLOC(chunk_size);
wim->hdr.total_parts = total_parts;
/* Set compression type if different. */
- if (wim->compression_type != wim->out_compression_type)
- wim->hdr.flags = get_wim_hdr_cflags(wim->out_compression_type);
+ if (wim->compression_type != wim->out_compression_type) {
+ ret = set_wim_hdr_cflags(wim->out_compression_type, &wim->hdr);
+ wimlib_assert(ret == 0);
+ }
/* Set chunk size if different. */
wim->hdr.chunk_size = wim->out_chunk_size;