Author: stsp
Date: Tue Oct 18 21:00:57 2016
New Revision: 1765506

URL: http://svn.apache.org/viewvc?rev=1765506&view=rev
Log:
* subversion/libsvn_client/conflicts.c
  (resolve_incoming_delete_accept): Lock the parent of the node we're deleting,
   else the resolver will error out erroneously accepting an incoming deletion.

Found by: stilor

Modified:
    subversion/trunk/subversion/libsvn_client/conflicts.c

Modified: subversion/trunk/subversion/libsvn_client/conflicts.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/conflicts.c?rev=1765506&r1=1765505&r2=1765506&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/conflicts.c (original)
+++ subversion/trunk/subversion/libsvn_client/conflicts.c Tue Oct 18 21:00:57 
2016
@@ -6656,14 +6656,17 @@ resolve_incoming_delete_accept(svn_clien
 {
   svn_client_conflict_option_id_t option_id;
   const char *local_abspath;
+  const char *parent_abspath;
   const char *lock_abspath;
   svn_error_t *err;
 
   option_id = svn_client_conflict_option_get_id(option);
   local_abspath = svn_client_conflict_get_local_abspath(conflict);
 
+  /* Deleting a node requires a lock on the node's parent. */
+  parent_abspath = svn_dirent_dirname(local_abspath, scratch_pool);
   SVN_ERR(svn_wc__acquire_write_lock_for_resolve(&lock_abspath, ctx->wc_ctx,
-                                                 local_abspath,
+                                                 parent_abspath,
                                                  scratch_pool, scratch_pool));
 
   err = verify_local_state_for_incoming_delete(conflict, option, ctx,


Reply via email to