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];