Author: stsp
Date: Thu Oct 21 19:07:54 2010
New Revision: 1026105
URL: http://svn.apache.org/viewvc?rev=1026105&view=rev
Log:
* subversion/libsvn_wc/merge.c
(merge_text_file): Don't leak temporary file RESULT_TARGET.
E.g. when a text conflict happened during an update, and the user
chose 'theirs-full', a file containing the diff3 merge result with
conflict markers was left over in .svn/tmp/ directory.
Found by: someone on the #svn IRC channel, some time ago
Modified:
subversion/trunk/subversion/libsvn_wc/merge.c
Modified: subversion/trunk/subversion/libsvn_wc/merge.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/merge.c?rev=1026105&r1=1026104&r2=1026105&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/merge.c (original)
+++ subversion/trunk/subversion/libsvn_wc/merge.c Thu Oct 21 19:07:54 2010
@@ -1039,7 +1039,10 @@ merge_text_file(svn_skel_t **work_items,
}
if (*merge_outcome == svn_wc_merge_merged)
- return SVN_NO_ERROR;
+ {
+ SVN_ERR(svn_io_remove_file2(result_target, TRUE, scratch_pool));
+ return SVN_NO_ERROR;
+ }
}
else if (contains_conflicts && dry_run)
*merge_outcome = svn_wc_merge_conflict;
@@ -1078,6 +1081,8 @@ merge_text_file(svn_skel_t **work_items,
result_pool, scratch_pool));
*work_items = svn_wc__wq_merge(*work_items, work_item, result_pool);
}
+ else
+ SVN_ERR(svn_io_remove_file2(result_target, TRUE, scratch_pool));
return SVN_NO_ERROR;
}