+ if (uncompressed_len <= STACK_MAX) {
+ matches = alloca(uncompressed_len * sizeof(matches[0]));
+ udata = alloca(uncompressed_len + 8);
+ prev_tab = alloca(uncompressed_len * sizeof(prev_tab[0]));
+ } else {
+ matches = MALLOC(uncompressed_len * sizeof(matches[0]));
+ udata = MALLOC(uncompressed_len + 8);
+ prev_tab = MALLOC(uncompressed_len * sizeof(prev_tab[0]));
+ if (matches == NULL || udata == NULL || prev_tab == NULL) {
+ WARNING("Failed to allocate memory for compression...");
+ compressed_len = 0;
+ goto out_free;
+ }
+ }
+