git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v3 12/17] object-file.c: return -2 on "header too long" in unpack_loose_header()

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
May 20, 2021, 11:23 UTC
Message-ID
<patch-12.17-77f2cd439c-20210520T111610Z-avarab@gmail.com>
In-Reply-To
<cover-00.17-0000000000-20210520T111610Z-avarab@gmail.com>

Split up the return code for "header too long" from the generic negative return value unpack_loose_header() returns, and report via error() if we exceed MAX_HEADER_LEN.

As a test added earlier in this series in t1006-cat-file.sh shows we'll correctly emit zlib errors from zlib.c already in this case, so we have no need to carry those return codes further down the stack. Let's instead just return -2 saying we ran into the MAX_HEADER_LEN limit, or other negative values for "unable to unpack <OID> header".

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 object-file.c       | 15 ++++++++++-----
 object-store.h      |  6 ++++--
 t/t1006-cat-file.sh |  2 +-
 3 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/object-file.c b/object-file.c
index d4bdf86657..7623ada1aa 100644
--- a/object-file.c
+++ b/object-file.c
@@ -1240,10 +1240,10 @@ int unpack_loose_header(git_zstream *stream,
 	/*
 	 * We have a header longer than MAX_HEADER_LEN. We abort early
 	 * unless under we're running as e.g. "cat-file
-	 * --allow-unknown-type".
+	 * --allow-unknown-type". A -2 is "header too long"
 	 */
 	if (!header)
-		return -1;
+		return -2;
 
 	/*
 	 * buffer[0..bufsiz] was not large enough.  Copy the partial
@@ -1264,7 +1264,7 @@ int unpack_loose_header(git_zstream *stream,
 		stream->next_out = buffer;
 		stream->avail_out = bufsiz;
 	} while (status != Z_STREAM_END);
-	return -1;
+	return -2;
 }
 
 static void *unpack_loose_rest(git_zstream *stream,
@@ -1433,9 +1433,14 @@ static int loose_object_info(struct repository *r,
 	hdr_ret = unpack_loose_header(&stream, map, mapsize, hdr, sizeof(hdr),
 				      allow_unknown ? &hdrbuf : NULL);
 	if (hdr_ret < 0) {
-		status = error(_("unable to unpack %s header"),
-			       oid_to_hex(oid));
+		if (hdr_ret == -2)
+			status = error(_("header for %s too long, exceeds %d bytes"),
+				       oid_to_hex(oid), MAX_HEADER_LEN);
+		else
+			status = error(_("unable to unpack %s header"),
+				       oid_to_hex(oid));
 	}
+
 	if (!status && parse_loose_header(hdrbuf.len ? hdrbuf.buf : hdr, oi) < 0) {
 		status = error(_("unable to parse %s header"), oid_to_hex(oid));
 	}
diff --git a/object-store.h b/object-store.h
index 740edcac30..9accb614fc 100644
--- a/object-store.h
+++ b/object-store.h
@@ -481,13 +481,15 @@ int for_each_packed_object(each_packed_object_fn, void *,
  * unpack_loose_header() initializes the data stream needed to unpack
  * a loose object header.
  *
- * Returns 0 on success. Returns negative values on error.
+ * Returns 0 on success. Returns negative values on error. If the
+ * header exceeds MAX_HEADER_LEN -2 will be returned.
  *
  * It will only parse up to MAX_HEADER_LEN bytes unless an optional
  * "hdrbuf" argument is non-NULL. This is intended for use with
  * OBJECT_INFO_ALLOW_UNKNOWN_TYPE to extract the bad type for (error)
  * reporting. The full header will be extracted to "hdrbuf" for use
- * with parse_loose_header().
+ * with parse_loose_header(), -2 will still be returned from this
+ * function to indicate that the header was too long.
  */
 int unpack_loose_header(git_zstream *stream, unsigned char *map,
 			unsigned long mapsize, void *buffer,
diff --git a/t/t1006-cat-file.sh b/t/t1006-cat-file.sh
index d3d3fd733a..f12b06150e 100755
--- a/t/t1006-cat-file.sh
+++ b/t/t1006-cat-file.sh
@@ -440,7 +440,7 @@ bogus_sha1=$(echo_without_newline "$bogus_content" | git hash-object -t $bogus_t
 
 test_expect_success 'die on broken object with large type under -t and -s without --allow-unknown-type' '
 	cat >err.expect <<-EOF &&
-	error: unable to unpack $bogus_sha1 header
+	error: header for $bogus_sha1 too long, exceeds 32 bytes
 	fatal: git cat-file: could not get object info
 	EOF
 
-- 
2.32.0.rc0.406.g73369325f8d
Previous: Ævar Arnfjörð BjarmasonNext: Jonathan Tan
Message 48 of 245 in “usage.c: add a non-fatal bug() + misc doc fixes”
  1. 0/4 usage.c: add a non-fatal bug() + misc doc fixesÆvar Arnfjörð Bjarmason, Mar 28, 2021
  2. 3/4 api docs: document that BUG() emits a trace2 error eventÆvar Arnfjörð Bjarmason, Mar 28, 2021
  3. 1/4 usage.c: don't copy/paste the same comment three timesÆvar Arnfjörð Bjarmason, Mar 28, 2021
  4. Eric SunshineMar 28, 2021
  5. 2/4 api docs: document BUG() in api-error-handling.txtÆvar Arnfjörð Bjarmason, Mar 28, 2021
  6. Bagas SanjayaMar 29, 2021
  7. 4/4 usage.c: add a non-fatal bug() function to go with BUG()Ævar Arnfjörð Bjarmason, Mar 28, 2021
  8. 0/5 fsck: improve error reportingÆvar Arnfjörð Bjarmason, Mar 28, 2021
  9. 2/5 fsck tests: refactor one test to use a sub-repoÆvar Arnfjörð Bjarmason, Mar 28, 2021
  10. 1/5 cache.h: move object functions to object-store.hÆvar Arnfjörð Bjarmason, Mar 28, 2021
  11. 3/5 fsck: don't hard die on invalid object typesÆvar Arnfjörð Bjarmason, Mar 28, 2021
  12. 4/5 fsck: improve the error on invalid object typesÆvar Arnfjörð Bjarmason, Mar 28, 2021
  13. Johannes SixtMar 28, 2021
  14. 5/5 fsck: improve error on loose object hash mismatchÆvar Arnfjörð Bjarmason, Mar 28, 2021
  15. 0/6 fsck: better "invalid object" error reportingÆvar Arnfjörð Bjarmason, Apr 13, 2021
  16. 1/6 cache.h: move object functions to object-store.hÆvar Arnfjörð Bjarmason, Apr 13, 2021
  17. 2/6 fsck tests: refactor one test to use a sub-repoÆvar Arnfjörð Bjarmason, Apr 13, 2021
  18. 4/6 object-store.h: move read_loose_object() below 'struct object_info'Ævar Arnfjörð Bjarmason, Apr 13, 2021
  19. Jeff KingApr 23, 2021
  20. 5/6 fsck: report invalid types recorded in objectsÆvar Arnfjörð Bjarmason, Apr 13, 2021
  21. Jeff KingApr 23, 2021
  22. Ævar Arnfjörð BjarmasonApr 26, 2021
  23. Jeff KingApr 26, 2021
  24. 3/6 fsck: don't hard die on invalid object typesÆvar Arnfjörð Bjarmason, Apr 13, 2021
  25. Jeff KingApr 23, 2021
  26. 6/6 fsck: report invalid object type-path combinationsÆvar Arnfjörð Bjarmason, Apr 13, 2021
  27. 00/17 fsck: better "invalid object" error reportingÆvar Arnfjörð Bjarmason, May 20, 2021
  28. 01/17 fsck tests: refactor one test to use a sub-repoÆvar Arnfjörð Bjarmason, May 20, 2021
  29. 02/17 fsck tests: add test for fsck-ing an unknown typeÆvar Arnfjörð Bjarmason, May 20, 2021
  30. 04/17 cat-file tests: test that --allow-unknown-type isn't on by defaultÆvar Arnfjörð Bjarmason, May 20, 2021
  31. Jonathan NiederMay 27, 2021
  32. Ævar Arnfjörð BjarmasonMay 28, 2021
  33. 03/17 cat-file tests: test for missing object with -t and -sÆvar Arnfjörð Bjarmason, May 20, 2021
  34. 05/17 rev-list tests: test for behavior with invalid object typesÆvar Arnfjörð Bjarmason, May 20, 2021
  35. 06/17 cat-file tests: add corrupt loose object testÆvar Arnfjörð Bjarmason, May 20, 2021
  36. 07/17 cat-file tests: test for current --allow-unknown-type behaviorÆvar Arnfjörð Bjarmason, May 20, 2021
  37. 09/17 object-file.c: make parse_loose_header_extended() publicÆvar Arnfjörð Bjarmason, May 20, 2021
  38. 11/17 object-file.c: stop dying in parse_loose_header()Ævar Arnfjörð Bjarmason, May 20, 2021
  39. Jonathan TanMay 27, 2021
  40. 10/17 object-file.c: add missing braces to loose_object_info()Ævar Arnfjörð Bjarmason, May 20, 2021
  41. 08/17 cache.h: move object functions to object-store.hÆvar Arnfjörð Bjarmason, May 20, 2021
  42. 14/17 fsck: don't hard die on invalid object typesÆvar Arnfjörð Bjarmason, May 20, 2021
  43. Jonathan TanMay 27, 2021
  44. 17/17 fsck: report invalid object type-path combinationsÆvar Arnfjörð Bjarmason, May 20, 2021
  45. Jonathan TanMay 27, 2021
  46. 15/17 object-store.h: move read_loose_object() below 'struct object_info'Ævar Arnfjörð Bjarmason, May 20, 2021
  47. 13/17 object-file.c: return -1, not "status" from unpack_loose_header()Ævar Arnfjörð Bjarmason, May 20, 2021
  48. 12/17 object-file.c: return -2 on "header too long" in unpack_loose_header()Ævar Arnfjörð Bjarmason, May 20, 2021
  49. Jonathan TanMay 27, 2021
  50. 16/17 fsck: report invalid types recorded in objectsÆvar Arnfjörð Bjarmason, May 20, 2021
  51. Jonathan TanMay 27, 2021
  52. Jonathan TanMay 27, 2021
  53. Junio C HamanoMay 28, 2021
  54. Felipe ContrerasMay 28, 2021
  55. 00/21 fsck: better "invalid object" error reportingÆvar Arnfjörð Bjarmason, Jun 24, 2021
  56. 01/21 fsck tests: refactor one test to use a sub-repoÆvar Arnfjörð Bjarmason, Jun 24, 2021
  57. Andrei RybakJun 24, 2021
  58. Ævar Arnfjörð BjarmasonJun 24, 2021
  59. 02/21 fsck tests: add test for fsck-ing an unknown typeÆvar Arnfjörð Bjarmason, Jun 24, 2021
  60. 03/21 cat-file tests: test for missing object with -t and -sÆvar Arnfjörð Bjarmason, Jun 24, 2021
  61. 04/21 cat-file tests: test that --allow-unknown-type isn't on by defaultÆvar Arnfjörð Bjarmason, Jun 24, 2021
  62. 05/21 rev-list tests: test for behavior with invalid object typesÆvar Arnfjörð Bjarmason, Jun 24, 2021
  63. 06/21 cat-file tests: add corrupt loose object testÆvar Arnfjörð Bjarmason, Jun 24, 2021
  64. 07/21 cat-file tests: test for current --allow-unknown-type behaviorÆvar Arnfjörð Bjarmason, Jun 24, 2021
  65. 08/21 cache.h: move object functions to object-store.hÆvar Arnfjörð Bjarmason, Jun 24, 2021
  66. 10/21 object-file.c: make parse_loose_header_extended() publicÆvar Arnfjörð Bjarmason, Jun 24, 2021
  67. 09/21 object-file.c: don't set "typep" when returning non-zeroÆvar Arnfjörð Bjarmason, Jun 24, 2021
  68. 11/21 object-file.c: add missing braces to loose_object_info()Ævar Arnfjörð Bjarmason, Jun 24, 2021
  69. 12/21 object-file.c: simplify unpack_loose_short_header()Ævar Arnfjörð Bjarmason, Jun 24, 2021
  70. 13/21 object-file.c: split up ternary in parse_loose_header()Ævar Arnfjörð Bjarmason, Jun 24, 2021
  71. 14/21 object-file.c: stop dying in parse_loose_header()Ævar Arnfjörð Bjarmason, Jun 24, 2021
  72. 15/21 object-file.c: guard against future bugs in loose_object_info()Ævar Arnfjörð Bjarmason, Jun 24, 2021
  73. 16/21 object-file.c: return -1, not "status" from unpack_loose_header()Ævar Arnfjörð Bjarmason, Jun 24, 2021
  74. 17/21 object-file.c: return -2 on "header too long" in unpack_loose_header()Ævar Arnfjörð Bjarmason, Jun 24, 2021
  75. 18/21 fsck: don't hard die on invalid object typesÆvar Arnfjörð Bjarmason, Jun 24, 2021
  76. 19/21 object-store.h: move read_loose_object() below 'struct object_info'Ævar Arnfjörð Bjarmason, Jun 24, 2021
  77. 20/21 fsck: report invalid types recorded in objectsÆvar Arnfjörð Bjarmason, Jun 24, 2021
  78. 21/21 fsck: report invalid object type-path combinationsÆvar Arnfjörð Bjarmason, Jun 24, 2021
  79. 00/21 fsck: lib-ify object-file.c & better fsck "invalid object" error reportingÆvar Arnfjörð Bjarmason, Jul 10, 2021
  80. 01/21 fsck tests: refactor one test to use a sub-repoÆvar Arnfjörð Bjarmason, Jul 10, 2021
  81. 05/21 rev-list tests: test for behavior with invalid object typesÆvar Arnfjörð Bjarmason, Jul 10, 2021
  82. 02/21 fsck tests: add test for fsck-ing an unknown typeÆvar Arnfjörð Bjarmason, Jul 10, 2021
  83. 06/21 cat-file tests: add corrupt loose object testÆvar Arnfjörð Bjarmason, Jul 10, 2021
  84. 04/21 cat-file tests: test that --allow-unknown-type isn't on by defaultÆvar Arnfjörð Bjarmason, Jul 10, 2021
  85. 03/21 cat-file tests: test for missing object with -t and -sÆvar Arnfjörð Bjarmason, Jul 10, 2021
  86. 07/21 cat-file tests: test for current --allow-unknown-type behaviorÆvar Arnfjörð Bjarmason, Jul 10, 2021
  87. 08/21 cache.h: move object functions to object-store.hÆvar Arnfjörð Bjarmason, Jul 10, 2021
  88. 10/21 object-file.c: make parse_loose_header_extended() publicÆvar Arnfjörð Bjarmason, Jul 10, 2021
  89. 09/21 object-file.c: don't set "typep" when returning non-zeroÆvar Arnfjörð Bjarmason, Jul 10, 2021
  90. 12/21 object-file.c: simplify unpack_loose_short_header()Ævar Arnfjörð Bjarmason, Jul 10, 2021
  91. 11/21 object-file.c: add missing braces to loose_object_info()Ævar Arnfjörð Bjarmason, Jul 10, 2021
  92. 13/21 object-file.c: split up ternary in parse_loose_header()Ævar Arnfjörð Bjarmason, Jul 10, 2021
  93. 14/21 object-file.c: stop dying in parse_loose_header()Ævar Arnfjörð Bjarmason, Jul 10, 2021
  94. 15/21 object-file.c: guard against future bugs in loose_object_info()Ævar Arnfjörð Bjarmason, Jul 10, 2021
  95. 16/21 object-file.c: return -1, not "status" from unpack_loose_header()Ævar Arnfjörð Bjarmason, Jul 10, 2021
  96. 17/21 object-file.c: return -2 on "header too long" in unpack_loose_header()Ævar Arnfjörð Bjarmason, Jul 10, 2021
  97. 19/21 object-store.h: move read_loose_object() below 'struct object_info'Ævar Arnfjörð Bjarmason, Jul 10, 2021
  98. 18/21 fsck: don't hard die on invalid object typesÆvar Arnfjörð Bjarmason, Jul 10, 2021
  99. 20/21 fsck: report invalid types recorded in objectsÆvar Arnfjörð Bjarmason, Jul 10, 2021
  100. 21/21 fsck: report invalid object type-path combinationsÆvar Arnfjörð Bjarmason, Jul 10, 2021
  101. 00/22 fsck: lib-ify object-file.c & better fsck "invalid object" error reportingÆvar Arnfjörð Bjarmason, Sep 7, 2021
  102. 01/22 fsck tests: refactor one test to use a sub-repoÆvar Arnfjörð Bjarmason, Sep 7, 2021
  103. Taylor BlauSep 16, 2021
  104. Ævar Arnfjörð BjarmasonSep 17, 2021
  105. 02/22 fsck tests: add test for fsck-ing an unknown typeÆvar Arnfjörð Bjarmason, Sep 7, 2021
  106. Taylor BlauSep 16, 2021
  107. Ævar Arnfjörð BjarmasonSep 17, 2021
  108. 03/22 cat-file tests: test for missing object with -t and -sÆvar Arnfjörð Bjarmason, Sep 7, 2021
  109. Taylor BlauSep 16, 2021
  110. Taylor BlauSep 16, 2021
  111. Ævar Arnfjörð BjarmasonSep 16, 2021
  112. 04/22 cat-file tests: test that --allow-unknown-type isn't on by defaultÆvar Arnfjörð Bjarmason, Sep 7, 2021
  113. 05/22 rev-list tests: test for behavior with invalid object typesÆvar Arnfjörð Bjarmason, Sep 7, 2021
  114. Taylor BlauSep 16, 2021
  115. Ævar Arnfjörð BjarmasonSep 17, 2021
  116. 06/22 cat-file tests: add corrupt loose object testÆvar Arnfjörð Bjarmason, Sep 7, 2021
  117. 07/22 cat-file tests: test for current --allow-unknown-type behaviorÆvar Arnfjörð Bjarmason, Sep 7, 2021
  118. 08/22 object-file.c: don't set "typep" when returning non-zeroÆvar Arnfjörð Bjarmason, Sep 7, 2021
  119. Taylor BlauSep 16, 2021
  120. Jeff KingSep 16, 2021
  121. 09/22 cache.h: move object functions to object-store.hÆvar Arnfjörð Bjarmason, Sep 7, 2021
  122. Taylor BlauSep 16, 2021
  123. 10/22 object-file.c: make parse_loose_header_extended() publicÆvar Arnfjörð Bjarmason, Sep 7, 2021
  124. Taylor BlauSep 16, 2021
  125. 11/22 object-file.c: add missing braces to loose_object_info()Ævar Arnfjörð Bjarmason, Sep 7, 2021
  126. 12/22 object-file.c: simplify unpack_loose_short_header()Ævar Arnfjörð Bjarmason, Sep 7, 2021
  127. 14/22 object-file.c: stop dying in parse_loose_header()Ævar Arnfjörð Bjarmason, Sep 7, 2021
  128. Taylor BlauSep 17, 2021
  129. 13/22 object-file.c: split up ternary in parse_loose_header()Ævar Arnfjörð Bjarmason, Sep 7, 2021
  130. Taylor BlauSep 16, 2021
  131. 16/22 object-file.c: return -1, not "status" from unpack_loose_header()Ævar Arnfjörð Bjarmason, Sep 7, 2021
  132. 17/22 object-file.c: return -2 on "header too long" in unpack_loose_header()Ævar Arnfjörð Bjarmason, Sep 7, 2021
  133. 15/22 object-file.c: guard against future bugs in loose_object_info()Ævar Arnfjörð Bjarmason, Sep 7, 2021
  134. Taylor BlauSep 17, 2021
  135. 18/22 object-file.c: use "enum" return type for unpack_loose_header()Ævar Arnfjörð Bjarmason, Sep 7, 2021
  136. Taylor BlauSep 17, 2021
  137. 19/22 fsck: don't hard die on invalid object typesÆvar Arnfjörð Bjarmason, Sep 7, 2021
  138. Taylor BlauSep 17, 2021
  139. 20/22 object-store.h: move read_loose_object() below 'struct object_info'Ævar Arnfjörð Bjarmason, Sep 7, 2021
  140. 21/22 fsck: report invalid types recorded in objectsÆvar Arnfjörð Bjarmason, Sep 7, 2021
  141. Taylor BlauSep 17, 2021
  142. 22/22 fsck: report invalid object type-path combinationsÆvar Arnfjörð Bjarmason, Sep 7, 2021
  143. Taylor BlauSep 17, 2021
  144. Taylor BlauSep 17, 2021
  145. 00/17 fsck: lib-ify object-file.c & better fsck "invalid object" error reportingÆvar Arnfjörð Bjarmason, Sep 20, 2021
  146. 01/17 fsck tests: add test for fsck-ing an unknown typeÆvar Arnfjörð Bjarmason, Sep 20, 2021
  147. 02/17 fsck tests: refactor one test to use a sub-repoÆvar Arnfjörð Bjarmason, Sep 20, 2021
  148. 03/17 fsck tests: test current hash/type mismatch behaviorÆvar Arnfjörð Bjarmason, Sep 20, 2021
  149. 07/17 cat-file tests: add corrupt loose object testÆvar Arnfjörð Bjarmason, Sep 20, 2021
  150. 06/17 cat-file tests: test for missing/bogus object with -t, -s and -pÆvar Arnfjörð Bjarmason, Sep 20, 2021
  151. Taylor BlauSep 21, 2021
  152. 05/17 cat-file tests: move bogus_* variable declarations earlierÆvar Arnfjörð Bjarmason, Sep 20, 2021
  153. 04/17 fsck tests: test for garbage appended to a loose objectÆvar Arnfjörð Bjarmason, Sep 20, 2021
  154. 09/17 object-file.c: don't set "typep" when returning non-zeroÆvar Arnfjörð Bjarmason, Sep 20, 2021
  155. 08/17 cat-file tests: test for current --allow-unknown-type behaviorÆvar Arnfjörð Bjarmason, Sep 20, 2021
  156. 10/17 object-file.c: return -1, not "status" from unpack_loose_header()Ævar Arnfjörð Bjarmason, Sep 20, 2021
  157. 11/17 object-file.c: make parse_loose_header_extended() publicÆvar Arnfjörð Bjarmason, Sep 20, 2021
  158. 14/17 object-file.c: return ULHR_TOO_LONG on "header too long"Ævar Arnfjörð Bjarmason, Sep 20, 2021
  159. 12/17 object-file.c: simplify unpack_loose_short_header()Ævar Arnfjörð Bjarmason, Sep 20, 2021
  160. 15/17 object-file.c: stop dying in parse_loose_header()Ævar Arnfjörð Bjarmason, Sep 20, 2021
  161. 13/17 object-file.c: use "enum" return type for unpack_loose_header()Ævar Arnfjörð Bjarmason, Sep 20, 2021
  162. 16/17 fsck: don't hard die on invalid object typesÆvar Arnfjörð Bjarmason, Sep 20, 2021
  163. 17/17 fsck: report invalid object type-path combinationsÆvar Arnfjörð Bjarmason, Sep 20, 2021
  164. 00/17 fsck: lib-ify object-file.c & better fsck "invalid object" error reportingÆvar Arnfjörð Bjarmason, Sep 28, 2021
  165. 01/17 fsck tests: add test for fsck-ing an unknown typeÆvar Arnfjörð Bjarmason, Sep 28, 2021
  166. 02/17 fsck tests: refactor one test to use a sub-repoÆvar Arnfjörð Bjarmason, Sep 28, 2021
  167. 03/17 fsck tests: test current hash/type mismatch behaviorÆvar Arnfjörð Bjarmason, Sep 28, 2021
  168. 04/17 fsck tests: test for garbage appended to a loose objectÆvar Arnfjörð Bjarmason, Sep 28, 2021
  169. 05/17 cat-file tests: move bogus_* variable declarations earlierÆvar Arnfjörð Bjarmason, Sep 28, 2021
  170. 06/17 cat-file tests: test for missing/bogus object with -t, -s and -pÆvar Arnfjörð Bjarmason, Sep 28, 2021
  171. 07/17 cat-file tests: add corrupt loose object testÆvar Arnfjörð Bjarmason, Sep 28, 2021
  172. 08/17 cat-file tests: test for current --allow-unknown-type behaviorÆvar Arnfjörð Bjarmason, Sep 28, 2021
  173. 09/17 object-file.c: don't set "typep" when returning non-zeroÆvar Arnfjörð Bjarmason, Sep 28, 2021
  174. 11/17 object-file.c: make parse_loose_header_extended() publicÆvar Arnfjörð Bjarmason, Sep 28, 2021
  175. 10/17 object-file.c: return -1, not "status" from unpack_loose_header()Ævar Arnfjörð Bjarmason, Sep 28, 2021
  176. 12/17 object-file.c: simplify unpack_loose_short_header()Ævar Arnfjörð Bjarmason, Sep 28, 2021
  177. 14/17 object-file.c: return ULHR_TOO_LONG on "header too long"Ævar Arnfjörð Bjarmason, Sep 28, 2021
  178. 13/17 object-file.c: use "enum" return type for unpack_loose_header()Ævar Arnfjörð Bjarmason, Sep 28, 2021
  179. 15/17 object-file.c: stop dying in parse_loose_header()Ævar Arnfjörð Bjarmason, Sep 28, 2021
  180. 16/17 fsck: don't hard die on invalid object typesÆvar Arnfjörð Bjarmason, Sep 28, 2021
  181. 17/17 fsck: report invalid object type-path combinationsÆvar Arnfjörð Bjarmason, Sep 28, 2021
  182. Taylor BlauSep 29, 2021
  183. 00/17 fsck: lib-ify object-file.c & better fsck "invalid object" error reportingÆvar Arnfjörð Bjarmason, Sep 30, 2021
  184. 01/17 fsck tests: add test for fsck-ing an unknown typeÆvar Arnfjörð Bjarmason, Sep 30, 2021
  185. Andrei RybakSep 30, 2021
  186. Ævar Arnfjörð BjarmasonOct 1, 2021
  187. 03/17 fsck tests: test current hash/type mismatch behaviorÆvar Arnfjörð Bjarmason, Sep 30, 2021
  188. 02/17 fsck tests: refactor one test to use a sub-repoÆvar Arnfjörð Bjarmason, Sep 30, 2021
  189. 04/17 fsck tests: test for garbage appended to a loose objectÆvar Arnfjörð Bjarmason, Sep 30, 2021
  190. 05/17 cat-file tests: move bogus_* variable declarations earlierÆvar Arnfjörð Bjarmason, Sep 30, 2021
  191. 06/17 cat-file tests: test for missing/bogus object with -t, -s and -pÆvar Arnfjörð Bjarmason, Sep 30, 2021
  192. 07/17 cat-file tests: add corrupt loose object testÆvar Arnfjörð Bjarmason, Sep 30, 2021
  193. 08/17 cat-file tests: test for current --allow-unknown-type behaviorÆvar Arnfjörð Bjarmason, Sep 30, 2021
  194. 09/17 object-file.c: don't set "typep" when returning non-zeroÆvar Arnfjörð Bjarmason, Sep 30, 2021
  195. 10/17 object-file.c: return -1, not "status" from unpack_loose_header()Ævar Arnfjörð Bjarmason, Sep 30, 2021
  196. 12/17 object-file.c: simplify unpack_loose_short_header()Ævar Arnfjörð Bjarmason, Sep 30, 2021
  197. 11/17 object-file.c: make parse_loose_header_extended() publicÆvar Arnfjörð Bjarmason, Sep 30, 2021
  198. 13/17 object-file.c: use "enum" return type for unpack_loose_header()Ævar Arnfjörð Bjarmason, Sep 30, 2021
  199. 14/17 object-file.c: return ULHR_TOO_LONG on "header too long"Ævar Arnfjörð Bjarmason, Sep 30, 2021
  200. 15/17 object-file.c: stop dying in parse_loose_header()Ævar Arnfjörð Bjarmason, Sep 30, 2021
  201. 16/17 fsck: don't hard die on invalid object typesÆvar Arnfjörð Bjarmason, Sep 30, 2021
  202. 17/17 fsck: report invalid object type-path combinationsÆvar Arnfjörð Bjarmason, Sep 30, 2021
  203. Junio C HamanoSep 30, 2021
  204. Taylor BlauSep 30, 2021
  205. 00/17 fsck: lib-ify object-file.c & better fsck "invalid object" error reportingÆvar Arnfjörð Bjarmason, Oct 1, 2021
  206. 01/17 fsck tests: add test for fsck-ing an unknown typeÆvar Arnfjörð Bjarmason, Oct 1, 2021
  207. 02/17 fsck tests: refactor one test to use a sub-repoÆvar Arnfjörð Bjarmason, Oct 1, 2021
  208. 03/17 fsck tests: test current hash/type mismatch behaviorÆvar Arnfjörð Bjarmason, Oct 1, 2021
  209. 05/17 cat-file tests: move bogus_* variable declarations earlierÆvar Arnfjörð Bjarmason, Oct 1, 2021
  210. 06/17 cat-file tests: test for missing/bogus object with -t, -s and -pÆvar Arnfjörð Bjarmason, Oct 1, 2021
  211. 04/17 fsck tests: test for garbage appended to a loose objectÆvar Arnfjörð Bjarmason, Oct 1, 2021
  212. 07/17 cat-file tests: add corrupt loose object testÆvar Arnfjörð Bjarmason, Oct 1, 2021
  213. 08/17 cat-file tests: test for current --allow-unknown-type behaviorÆvar Arnfjörð Bjarmason, Oct 1, 2021
  214. 09/17 object-file.c: don't set "typep" when returning non-zeroÆvar Arnfjörð Bjarmason, Oct 1, 2021
  215. 10/17 object-file.c: return -1, not "status" from unpack_loose_header()Ævar Arnfjörð Bjarmason, Oct 1, 2021
  216. 11/17 object-file.c: make parse_loose_header_extended() publicÆvar Arnfjörð Bjarmason, Oct 1, 2021
  217. 12/17 object-file.c: simplify unpack_loose_short_header()Ævar Arnfjörð Bjarmason, Oct 1, 2021
  218. 13/17 object-file.c: use "enum" return type for unpack_loose_header()Ævar Arnfjörð Bjarmason, Oct 1, 2021
  219. 14/17 object-file.c: return ULHR_TOO_LONG on "header too long"Ævar Arnfjörð Bjarmason, Oct 1, 2021
  220. 15/17 object-file.c: stop dying in parse_loose_header()Ævar Arnfjörð Bjarmason, Oct 1, 2021
  221. 16/17 fsck: don't hard die on invalid object typesÆvar Arnfjörð Bjarmason, Oct 1, 2021
  222. 17/17 fsck: report invalid object type-path combinationsÆvar Arnfjörð Bjarmason, Oct 1, 2021
  223. Junio C HamanoOct 1, 2021
  224. Ævar Arnfjörð BjarmasonOct 1, 2021
  225. Han XinNov 11, 2021
  226. Junio C HamanoNov 11, 2021
  227. Han XinNov 11, 2021
  228. 0/2 v2.34.0-rc2 regression: free() of uninitialized in ab/fsck-unexpected-typeÆvar Arnfjörð Bjarmason, Nov 11, 2021
  229. 1/2 object-file: fix SEGV on free() regression in v2.34.0-rc2Ævar Arnfjörð Bjarmason, Nov 11, 2021
  230. Jeff KingNov 11, 2021
  231. Junio C HamanoNov 11, 2021
  232. Ævar Arnfjörð BjarmasonNov 13, 2021
  233. 2/2 object-file: free(*contents) only in read_loose_object() callerÆvar Arnfjörð Bjarmason, Nov 11, 2021
  234. Junio C HamanoNov 11, 2021
  235. Junio C HamanoMar 28, 2021
  236. Jeff KingMar 28, 2021
  237. Ævar Arnfjörð BjarmasonMar 29, 2021
  238. Jeff KingMar 31, 2021
  239. 0/3 trace2 docs: note that BUG() sends an "error" eventÆvar Arnfjörð Bjarmason, Apr 13, 2021
  240. 3/3 api docs: document that BUG() emits a trace2 error eventÆvar Arnfjörð Bjarmason, Apr 13, 2021
  241. 1/3 usage.c: don't copy/paste the same comment three timesÆvar Arnfjörð Bjarmason, Apr 13, 2021
  242. Jeff KingApr 15, 2021
  243. 2/3 api docs: document BUG() in api-error-handling.txtÆvar Arnfjörð Bjarmason, Apr 13, 2021
  244. Jeff KingApr 15, 2021
  245. Jeff KingApr 15, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.