Commit ef82ff30 by Scott J. Goldman

Handle packed refs with no trailing newline

I saw a repo in the wild today which had a master branch ref which was packed, but had no trailing newline. Git handled it fine, but libgit2 choked on it. Fix seems simple enough. If we don't see a newline, assume the end of the buffer is the end of the ref line.
parent 7511d8b4
...@@ -373,7 +373,7 @@ static int packed_parse_oid( ...@@ -373,7 +373,7 @@ static int packed_parse_oid(
refname_end = memchr(refname_begin, '\n', buffer_end - refname_begin); refname_end = memchr(refname_begin, '\n', buffer_end - refname_begin);
if (refname_end == NULL) if (refname_end == NULL)
goto corrupt; refname_end = buffer_end;
if (refname_end[-1] == '\r') if (refname_end[-1] == '\r')
refname_end--; refname_end--;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment