Commit 4597b869f7b2d5bba07e3feab166cb1db63e8b9c

Edward Thomson 2022-07-08T21:28:15

pack: don't pretend we support pack files v3 Pack files v3 are introduced in the SHA256 hash transition document https://github.com/git/git/blob/master/Documentation/technical/hash-function-transition.txt Obviously we do not support these yet. Stop pretending that we do.

diff --git a/src/libgit2/pack.h b/src/libgit2/pack.h
index f87249b..d90588f 100644
--- a/src/libgit2/pack.h
+++ b/src/libgit2/pack.h
@@ -33,7 +33,7 @@ typedef int git_pack_foreach_entry_offset_cb(
 
 #define PACK_SIGNATURE 0x5041434b	/* "PACK" */
 #define PACK_VERSION 2
-#define pack_version_ok(v) ((v) == htonl(2) || (v) == htonl(3))
+#define pack_version_ok(v) ((v) == htonl(2))
 struct git_pack_header {
 	uint32_t hdr_signature;
 	uint32_t hdr_version;
diff --git a/tests/libgit2/pack/indexer.c b/tests/libgit2/pack/indexer.c
index ec48ffd..94b2cc9 100644
--- a/tests/libgit2/pack/indexer.c
+++ b/tests/libgit2/pack/indexer.c
@@ -59,7 +59,7 @@ static const unsigned int corrupt_thin_pack_len = 67;
  * Packfile with a missing trailer.
  */
 static const unsigned char missing_trailer_pack[] = {
-  0x50, 0x41, 0x43, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x00, 0x50, 0xf4, 0x3b,
+  0x50, 0x41, 0x43, 0x4b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x50, 0xf4, 0x3b,
 };
 static const unsigned int missing_trailer_pack_len = 12;
 
@@ -68,7 +68,7 @@ static const unsigned int missing_trailer_pack_len = 12;
  * the stream reader.
  */
 static const unsigned char leaky_pack[] = {
-	0x50, 0x41, 0x43, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
+	0x50, 0x41, 0x43, 0x4b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03,
 	0xf4, 0xbd, 0x51, 0x51, 0x51, 0x51, 0x51, 0x72, 0x65, 0x41, 0x4b, 0x63,
 	0x5f, 0x64, 0x65, 0x70, 0x74, 0x68, 0xbd, 0x41, 0x4b
 };