|
@@ -50,8 +50,11 @@ static uint8_t *inflate_buffer(uint8_t *in, uint32_t in_len, uint32_t *size)
|
|
ret = inflate(&stream, Z_FINISH);
|
|
ret = inflate(&stream, Z_FINISH);
|
|
switch (ret) {
|
|
switch (ret) {
|
|
case Z_OK:
|
|
case Z_OK:
|
|
- case Z_STREAM_END:
|
|
|
|
break;
|
|
break;
|
|
|
|
+ case Z_STREAM_END:
|
|
|
|
+ *size = stream.total_out;
|
|
|
|
+ inflateEnd(&stream);
|
|
|
|
+ return out;
|
|
case Z_BUF_ERROR:
|
|
case Z_BUF_ERROR:
|
|
out_len <<= 1;
|
|
out_len <<= 1;
|
|
if (out_len > (1 << 20)) {
|
|
if (out_len > (1 << 20)) {
|
|
@@ -66,11 +69,6 @@ static uint8_t *inflate_buffer(uint8_t *in, uint32_t in_len, uint32_t *size)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- *size = stream.total_out;
|
|
|
|
- inflateEnd(&stream);
|
|
|
|
-
|
|
|
|
- return out;
|
|
|
|
-
|
|
|
|
err_end:
|
|
err_end:
|
|
inflateEnd(&stream);
|
|
inflateEnd(&stream);
|
|
err:
|
|
err:
|