updated for version 7.0-200
diff --git a/src/diff.c b/src/diff.c
index 22cf5af..daa1f19 100644
--- a/src/diff.c
+++ b/src/diff.c
@@ -1822,14 +1822,20 @@
idx = diff_buf_idx(wp->w_buffer);
if (idx == DB_COUNT) /* cannot happen */
+ {
+ vim_free(line_org);
return FALSE;
+ }
/* search for a change that includes "lnum" in the list of diffblocks. */
for (dp = curtab->tp_first_diff; dp != NULL; dp = dp->df_next)
if (lnum <= dp->df_lnum[idx] + dp->df_count[idx])
break;
if (dp == NULL || diff_check_sanity(curtab, dp) == FAIL)
+ {
+ vim_free(line_org);
return FALSE;
+ }
off = lnum - dp->df_lnum[idx];