Merge branch 'jk/stream-pack-non-delta-clarification'
authorJunio C Hamano <gitster@pobox.com>
Tue, 13 Nov 2018 13:37:18 +0000 (22:37 +0900)
committerJunio C Hamano <gitster@pobox.com>
Tue, 13 Nov 2018 13:37:18 +0000 (22:37 +0900)
Additional comment on a tricky piece of code to help developers.

* jk/stream-pack-non-delta-clarification:
read_istream_pack_non_delta(): document input handling

streaming.c
index d1e6b2dce6877cb1407ac9d38e65d8b2bae25daa..ac7c7a22f90b7320a235f23db9387fd91ba5b2cd 100644 (file)
@@ -408,6 +408,15 @@ static read_method_decl(pack_non_delta)
                        st->z_state = z_done;
                        break;
                }
+
+               /*
+                * Unlike the loose object case, we do not have to worry here
+                * about running out of input bytes and spinning infinitely. If
+                * we get Z_BUF_ERROR due to too few input bytes, then we'll
+                * replenish them in the next use_pack() call when we loop. If
+                * we truly hit the end of the pack (i.e., because it's corrupt
+                * or truncated), then use_pack() catches that and will die().
+                */
                if (status != Z_OK && status != Z_BUF_ERROR) {
                        git_inflate_end(&st->z);
                        st->z_state = z_error;