aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorMark Adler <madler@alumni.caltech.edu>2024-02-02 16:13:24 -0800
committerMark Adler <madler@alumni.caltech.edu>2024-02-04 18:49:40 -0800
commitbb054d95d0336f8d36c85c5f1d8a98f935a3c131 (patch)
tree6dcafef3f53a7985d131fd9b6cb3ce9084230426 /examples
parentbe4db0a79add326bf06ff46b550f564288749f90 (diff)
downloadzlib-bb054d95d0336f8d36c85c5f1d8a98f935a3c131.tar.gz
zlib-bb054d95d0336f8d36c85c5f1d8a98f935a3c131.tar.bz2
zlib-bb054d95d0336f8d36c85c5f1d8a98f935a3c131.zip
Stop decoding in zran.c once request is satisfied.
Diffstat (limited to 'examples')
-rw-r--r--examples/zran.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/examples/zran.c b/examples/zran.c
index 9c3e5dc..d3f5a36 100644
--- a/examples/zran.c
+++ b/examples/zran.c
@@ -402,8 +402,12 @@ ptrdiff_t deflate_index_extract(FILE *in, struct deflate_index *index,
402 // Update the appropriate count. 402 // Update the appropriate count.
403 if (offset) 403 if (offset)
404 offset -= got; 404 offset -= got;
405 else 405 else {
406 left -= got; 406 left -= got;
407 if (left == 0)
408 // Request satisfied.
409 break;
410 }
407 411
408 // If we're at the end of a gzip member and there's more to read, 412 // If we're at the end of a gzip member and there's more to read,
409 // continue to the next gzip member. 413 // continue to the next gzip member.
@@ -450,7 +454,7 @@ ptrdiff_t deflate_index_extract(FILE *in, struct deflate_index *index,
450 454
451 // Continue until we have the requested data, the deflate data has 455 // Continue until we have the requested data, the deflate data has
452 // ended, or an error is encountered. 456 // ended, or an error is encountered.
453 } while (ret == Z_OK && left); 457 } while (ret == Z_OK);
454 inflateEnd(&strm); 458 inflateEnd(&strm);
455 459
456 // Return the number of uncompressed bytes read into buf, or the error. 460 // Return the number of uncompressed bytes read into buf, or the error.