Author: stefan2
Date: Tue Dec 30 20:02:59 2014
New Revision: 1648591

URL: http://svn.apache.org/r1648591
Log:
Follow-up to r1648537:  Fix occasional segfault in DAG walk.

* subversion/libsvn_fs_fs/tree.c
  (open_path): Make sure our "HERE" node remains valid between iterations. 

Modified:
    subversion/trunk/subversion/libsvn_fs_fs/tree.c

Modified: subversion/trunk/subversion/libsvn_fs_fs/tree.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/tree.c?rev=1648591&r1=1648590&r2=1648591&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs_fs/tree.c (original)
+++ subversion/trunk/subversion/libsvn_fs_fs/tree.c Tue Dec 30 20:02:59 2014
@@ -1076,8 +1076,12 @@ open_path(parent_path_t **parent_path_p,
 
           if (flags & open_path_node_only)
             {
-              /* Shortcut: the caller only wants the final DAG node. */
-              parent_path->node = svn_fs_fs__dag_copy_into_pool(child, pool);
+              /* Shortcut: the caller only wants the final DAG node.
+                 Make sure CHILD, which will become HERE, and the node
+                 we will ultimately return survive the cleanup of
+                 ITERPOOL. */
+              child = svn_fs_fs__dag_copy_into_pool(child, pool);
+              parent_path->node = child;
             }
           else
             {


Reply via email to