Fixed a bug with non-appending multi-session and zisofs decompression.
This commit is contained in:
parent
ec672ab903
commit
9a873ed693
@ -565,7 +565,12 @@ int ziso_stream_uncompress(IsoStream *stream, void *buf, size_t desired)
|
|||||||
/* Delivering data blocks */;
|
/* Delivering data blocks */;
|
||||||
i = ++(rng->block_pointer_rpos);
|
i = ++(rng->block_pointer_rpos);
|
||||||
if (i >= rng->block_pointer_fill) {
|
if (i >= rng->block_pointer_fill) {
|
||||||
/* More data blocks than announced */
|
if (rng->out_counter == data->size) {
|
||||||
|
rng->state = 3;
|
||||||
|
rng->block_pointer_rpos--;
|
||||||
|
return fill;
|
||||||
|
}
|
||||||
|
/* More data blocks needed than announced */
|
||||||
return (rng->error_ret = ISO_FILTER_WRONG_INPUT);
|
return (rng->error_ret = ISO_FILTER_WRONG_INPUT);
|
||||||
}
|
}
|
||||||
todo = rng->block_pointers[i] - rng->block_pointers[i- 1];
|
todo = rng->block_pointers[i] - rng->block_pointers[i- 1];
|
||||||
|
@ -1142,8 +1142,10 @@ int iso_file_source_new_ifs(IsoImageFilesystem *fs, IsoFileSource *parent,
|
|||||||
size_t cs_value_length = 0;
|
size_t cs_value_length = 0;
|
||||||
char msg[160];
|
char msg[160];
|
||||||
|
|
||||||
|
#ifdef Libisofs_with_zliB
|
||||||
uint8_t zisofs_alg[2], zisofs_hs4 = 0, zisofs_bsl2 = 0;
|
uint8_t zisofs_alg[2], zisofs_hs4 = 0, zisofs_bsl2 = 0;
|
||||||
uint32_t zisofs_usize = 0;
|
uint32_t zisofs_usize = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (fs == NULL || fs->data == NULL || record == NULL || src == NULL) {
|
if (fs == NULL || fs->data == NULL || record == NULL || src == NULL) {
|
||||||
return ISO_NULL_POINTER;
|
return ISO_NULL_POINTER;
|
||||||
|
Loading…
Reference in New Issue
Block a user