mirror of
https://git.proxmox.com/git/libgit2
synced 2025-11-04 17:48:55 +00:00
In a diff, the shortest possible hunk with a modification (that is, no
deletion) results from a file with only one line with a single character
which is removed. Thus the following hunk
@@ -1 +1 @@
-a
+
is the shortest valid hunk modifying a line. The function parsing the
hunk body though assumes that there must always be at least 4 bytes
present to make up a valid hunk, which is obviously wrong in this case.
The absolute minimum number of bytes required for a modification is
actually 2 bytes, that is the "+" and the following newline. Note: if
there is no trailing newline, the assumption will not be offended as the
diff will have a line "\ No trailing newline" at its end.
This patch fixes the issue by lowering the amount of bytes required.
|
||
|---|---|---|
| .. | ||
| binary.c | ||
| blob.c | ||
| diff_helpers.c | ||
| diff_helpers.h | ||
| diffiter.c | ||
| drivers.c | ||
| format_email.c | ||
| index.c | ||
| notify.c | ||
| parse.c | ||
| patch.c | ||
| pathspec.c | ||
| racediffiter.c | ||
| rename.c | ||
| stats.c | ||
| submodules.c | ||
| tree.c | ||
| workdir.c | ||