You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by pb...@apache.org on 2010/01/06 18:12:35 UTC
svn commit: r896547 -
/subversion/branches/1.6.x-r896522/subversion/libsvn_wc/adm_ops.c
Author: pburba
Date: Wed Jan 6 17:12:30 2010
New Revision: 896547
URL: http://svn.apache.org/viewvc?rev=896547&view=rev
Log:
Fix segfault with 'svn resolve [mine-full | base | theirs-full]'.
Follow-up to r880533 on the ^/subversion/branches/1.6.x-r40452 branch. This
bug no longer exists on trunk, so the change is being made directly on this
backport branch. See http://svn.haxx.se/dev/archive-2010-01/0088.shtml for
a full discussion/explanation.
* subversion/libsvn_wc/adm_ops.c
(resolve_conflict_on_entry): Don't try to join NULL paths.
Modified:
subversion/branches/1.6.x-r896522/subversion/libsvn_wc/adm_ops.c
Modified: subversion/branches/1.6.x-r896522/subversion/libsvn_wc/adm_ops.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.6.x-r896522/subversion/libsvn_wc/adm_ops.c?rev=896547&r1=896546&r2=896547&view=diff
==============================================================================
--- subversion/branches/1.6.x-r896522/subversion/libsvn_wc/adm_ops.c (original)
+++ subversion/branches/1.6.x-r896522/subversion/libsvn_wc/adm_ops.c Wed Jan 6 17:12:30 2010
@@ -2741,29 +2741,31 @@
if (resolve_text)
{
- const char *auto_resolve_src;
+ const char *auto_resolve_src = NULL;
/* Handle automatic conflict resolution before the temporary files are
* deleted, if necessary. */
switch (conflict_choice)
{
case svn_wc_conflict_choose_base:
- auto_resolve_src = svn_path_join(
- svn_wc_adm_access_path(conflict_dir),
- entry->conflict_old, pool);
+ if (entry->conflict_old)
+ auto_resolve_src = svn_path_join(
+ svn_wc_adm_access_path(conflict_dir),
+ entry->conflict_old, pool);
break;
case svn_wc_conflict_choose_mine_full:
- auto_resolve_src = svn_path_join(
- svn_wc_adm_access_path(conflict_dir),
- entry->conflict_wrk, pool);
+ if (entry->conflict_wrk)
+ auto_resolve_src = svn_path_join(
+ svn_wc_adm_access_path(conflict_dir),
+ entry->conflict_wrk, pool);
break;
case svn_wc_conflict_choose_theirs_full:
- auto_resolve_src = svn_path_join(
- svn_wc_adm_access_path(conflict_dir),
- entry->conflict_new, pool);
+ if (entry->conflict_new)
+ auto_resolve_src = svn_path_join(
+ svn_wc_adm_access_path(conflict_dir),
+ entry->conflict_new, pool);
break;
case svn_wc_conflict_choose_merged:
- auto_resolve_src = NULL;
break;
case svn_wc_conflict_choose_theirs_conflict:
case svn_wc_conflict_choose_mine_conflict:
@@ -2828,8 +2830,6 @@
pool));
SVN_ERR(svn_stream_close(tmp_stream));
}
- else
- auto_resolve_src = NULL;
break;
}
default: