STATUS status;
z_stream Z;
- *decoded = NULL;
- *decoded_len = 0;
-
-retry_inflate:
do {
Z.zalloc = Z_NULL;
Z.zfree = Z_NULL;
if (!max) {
- if (!*decoded) {
- *decoded_len = data_len * 2;
- *decoded = emalloc(*decoded_len + 1);
- }
+ *decoded_len = data_len * 2;
+ *decoded = emalloc(*decoded_len + 1);
} else {
size_t new_len = *decoded_len << 2;
char *new_ptr = erealloc_recoverable(*decoded, new_len + 1);
}
}
+retry_inflate:
Z.next_in = (Bytef *) data;
Z.avail_in = data_len;
Z.next_out = (Bytef *) *decoded;