Author: hwright
Date: Tue Mar 16 17:34:14 2010
New Revision: 923889
URL: http://svn.apache.org/viewvc?rev=923889&view=rev
Log:
Reintegrate the 1.6.x-issue3605 branch:
* r923674, r923679
Fix pool lifetime issue in the status walker.
Justification:
Without this patch externals information is kept in a per directory pool,
which is cleared when the status walker goes back to the parent
directory. The is_external_path() function then uses freed memory.
Branch:
^/subversion/branches/1.6.x-issue3605
Votes:
+1: rhuijben, stsp, hwright
Modified:
subversion/branches/1.6.x/ (props changed)
subversion/branches/1.6.x/CHANGES (props changed)
subversion/branches/1.6.x/STATUS
subversion/branches/1.6.x/subversion/libsvn_wc/status.c
Propchange: subversion/branches/1.6.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Mar 16 17:34:14 2010
@@ -7,6 +7,7 @@
/subversion/branches/1.6.x-issue3443:874942-875825
/subversion/branches/1.6.x-issue3519:880376-889934
/subversion/branches/1.6.x-issue3573:906488-923765
+/subversion/branches/1.6.x-issue3605:923668-923887
/subversion/branches/1.6.x-no-svn_uri:872705-872760
/subversion/branches/1.6.x-r36178:874221-874229
/subversion/branches/1.6.x-r36252:872673-873133
Propchange: subversion/branches/1.6.x/CHANGES
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Mar 16 17:34:14 2010
@@ -7,6 +7,7 @@
/subversion/branches/1.6.x-issue3443/CHANGES:874942-875825
/subversion/branches/1.6.x-issue3519/CHANGES:880376-889934
/subversion/branches/1.6.x-issue3573/CHANGES:906488-923765
+/subversion/branches/1.6.x-issue3605/CHANGES:923668-923887
/subversion/branches/1.6.x-no-svn_uri/CHANGES:872705-872760
/subversion/branches/1.6.x-r36178/CHANGES:874221-874229
/subversion/branches/1.6.x-r36252/CHANGES:872673-873133
Modified: subversion/branches/1.6.x/STATUS
URL:
http://svn.apache.org/viewvc/subversion/branches/1.6.x/STATUS?rev=923889&r1=923888&r2=923889&view=diff
==============================================================================
--- subversion/branches/1.6.x/STATUS (original)
+++ subversion/branches/1.6.x/STATUS Tue Mar 16 17:34:14 2010
@@ -205,14 +205,3 @@ Veto-blocked changes:
Approved changes:
=================
-
- * r923674, r923679
- Fix pool lifetime issue in the status walker.
- Justification:
- Without this patch externals information is kept in a per directory pool,
- which is cleared when the status walker goes back to the parent
- directory. The is_external_path() function then uses freed memory.
- Branch:
- ^/subversion/branches/1.6.x-issue3605
- Votes:
- +1: rhuijben, stsp, hwright
Modified: subversion/branches/1.6.x/subversion/libsvn_wc/status.c
URL:
http://svn.apache.org/viewvc/subversion/branches/1.6.x/subversion/libsvn_wc/status.c?rev=923889&r1=923888&r2=923889&view=diff
==============================================================================
--- subversion/branches/1.6.x/subversion/libsvn_wc/status.c (original)
+++ subversion/branches/1.6.x/subversion/libsvn_wc/status.c Tue Mar 16 17:34:14
2010
@@ -884,6 +884,7 @@ get_dir_status(struct edit_baton *eb,
if (prop_val)
{
apr_array_header_t *ext_items;
+ apr_pool_t *hash_pool = apr_hash_pool_get(eb->externals);
int i;
if (eb->traversal_info)
@@ -916,8 +917,8 @@ get_dir_status(struct edit_baton *eb,
item = APR_ARRAY_IDX(ext_items, i, svn_wc_external_item2_t *);
apr_hash_set(eb->externals, svn_path_join(path,
item->target_dir,
- pool),
- APR_HASH_KEY_STRING, item);
+ hash_pool),
+ APR_HASH_KEY_STRING, "");
}
}
}