diff --git a/src/refs.c b/src/refs.c index 4ecc628ee..4934a0309 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,13 +339,10 @@ static int packed_parse_peel( if (*buffer == '\r') buffer++; - if (*buffer == '\n') - buffer++; - - if (buffer != buffer_end) + if (*buffer != '\n') goto corrupt; - *buffer_out = buffer; + *buffer_out = buffer + 1; return 0; corrupt: