Fix panic when diff (#9187)

* fix panic when diff

* improve code
This commit is contained in:
Lunny Xiao 2019-11-28 17:05:57 +08:00 committed by GitHub
parent 6e578dd0c9
commit ef9a0370ca
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
26 changed files with 688 additions and 8 deletions

View file

@ -683,6 +683,15 @@ func ParsePatch(maxLines, maxLineCharacters, maxFiles int, reader io.Reader) (*D
// Get new file.
if strings.HasPrefix(line, cmdDiffHead) {
if len(diff.Files) >= maxFiles {
diff.IsIncomplete = true
_, err := io.Copy(ioutil.Discard, reader)
if err != nil {
return nil, fmt.Errorf("Copy: %v", err)
}
break
}
var middle int
// Note: In case file name is surrounded by double quotes (it happens only in git-shell).
@ -727,14 +736,6 @@ func ParsePatch(maxLines, maxLineCharacters, maxFiles int, reader io.Reader) (*D
IsRenamed: a != b,
}
diff.Files = append(diff.Files, curFile)
if len(diff.Files) >= maxFiles {
diff.IsIncomplete = true
_, err := io.Copy(ioutil.Discard, reader)
if err != nil {
return nil, fmt.Errorf("Copy: %v", err)
}
break
}
curFileLinesCount = 0
leftLine = 1
rightLine = 1