From 28b1cdf3a1bdcd37cf9d550c92b8c19b1782ea6b Mon Sep 17 00:00:00 2001
From: Scott J. Goldman <scottjg@github.com>
Date: Mon, 21 Jan 2013 14:45:43 -0800
Subject: [PATCH] Handle packed peeled objects without trailing newlines

Fixes #1262
---
 src/refs.c |  9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/refs.c b/src/refs.c
index 4934a03..4ecc628 100644
--- a/src/refs.c
+++ b/src/refs.c
@@ -328,7 +328,7 @@ static int packed_parse_peel(
 	if (git__prefixcmp(tag_ref->name, GIT_REFS_TAGS_DIR) != 0)
 		goto corrupt;
 
-	if (buffer + GIT_OID_HEXSZ >= buffer_end)
+	if (buffer + GIT_OID_HEXSZ > buffer_end)
 		goto corrupt;
 
 	/* Is this a valid object id? */
@@ -339,10 +339,13 @@ static int packed_parse_peel(
 	if (*buffer == '\r')
 		buffer++;
 
-	if (*buffer != '\n')
+	if (*buffer == '\n')
+		buffer++;
+
+	if (buffer != buffer_end)
 		goto corrupt;
 
-	*buffer_out = buffer + 1;
+	*buffer_out = buffer;
 	return 0;
 
 corrupt:
--
libgit2 0.26.0