svn commit: r1892550 - /subversion/site/staging/packages.html
Author: dsahlberg Date: Mon Aug 23 19:14:44 2021 New Revision: 1892550 URL: http://svn.apache.org/viewvc?rev=1892550=rev Log: * In site/staging: * package.html: Change the Solaris package link from WANdisco (since there isn't a Solaris package anymore) to OpenCSW. Suggested by: jcorvel http://mail-archives.apache.org/mod_mbox/subversion-dev/202108.mbox/%3CCAB84uBUkk26b16vaXmUmoX%3DV_fQCkA2ueNqP%2B-yGGNqOsyJ7_w%40mail.gmail.com%3E Modified: subversion/site/staging/packages.html Modified: subversion/site/staging/packages.html URL: http://svn.apache.org/viewvc/subversion/site/staging/packages.html?rev=1892550=1892549=1892550=diff == --- subversion/site/staging/packages.html (original) +++ subversion/site/staging/packages.html Mon Aug 23 19:14:44 2021 @@ -331,10 +331,8 @@ $ yum install mod_dav_svn -https://www.wandisco.com/subversion/download#solaris;> -WANdisco (supported and certified by - https://www.wandisco.com/subversion/; - >WANdisco; requires registration) +https://www.opencsw.org/packages/subversion/;> +OpenCSW community project
svn commit: r1892547 - /subversion/branches/1.14.x/STATUS
Author: dsahlberg Date: Mon Aug 23 17:37:07 2021 New Revision: 1892547 URL: http://svn.apache.org/viewvc?rev=1892547=rev Log: Upgrade my vote for the r1892470 group. Modified: subversion/branches/1.14.x/STATUS Modified: subversion/branches/1.14.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.14.x/STATUS?rev=1892547=1892546=1892547=diff == --- subversion/branches/1.14.x/STATUS (original) +++ subversion/branches/1.14.x/STATUS Mon Aug 23 17:37:07 2021 @@ -104,8 +104,9 @@ Candidate changes: Subversion should not crash. User complained. Votes: +1: stsp - -1: dsahlberg (without r1892541: - FAILURE in conflicts-test, see dev@, comments to r1892471) + +0: dsahlberg (test suite passes for 'check', 'davautocheck' and + 'svnserveautocheck'. Not enough C experience for a formal + review) Veto-blocked changes: =
Re: svn commit: r1892471 - in /subversion/trunk/subversion: libsvn_client/conflicts.c libsvn_wc/wc_db.c tests/cmdline/merge_tree_conflict_tests.py
Den mån 23 aug. 2021 kl 11:16 skrev Stefan Sperling : > On Sat, Aug 21, 2021 at 09:38:56PM +0200, Daniel Sahlberg wrote: > > > @@ -3028,12 +3028,12 @@ conflict_tree_get_details_local_missing( > > > > deleted_basename, > > >conflict->pool); > > >details->moves = moves; > > > + details->wc_move_targets = apr_hash_make(conflict->pool); > > >if (details->moves != NULL) > > > { > > >apr_pool_t *iterpool; > > >int i; > > > > > > - details->wc_move_targets = apr_hash_make(conflict->pool); > > >iterpool = svn_pool_create(scratch_pool); > > >for (i = 0; i < details->moves->nelts; i++) > > > { > > > > > > > I have not investigated further (ENOTIME right now) but I presume some > > other part of the code expects wc_move_targets to be NULL. > > The problem is that some parts of the code try to search the now non-NULL > hash map with a NULL key because they lack checks for NULL keys. > I will commit a fix shortly. > Thanks! I can confirm that the test suite now passes. I'm going to upgrade my vote to +0, not because I have any concerns but because I don't feel confident enough reviewing the C code to vote +1. Kind regards, Daniel Sahlberg
svn commit: r1892542 - /subversion/branches/1.14.x/STATUS
Author: stsp Date: Mon Aug 23 09:29:44 2021 New Revision: 1892542 URL: http://svn.apache.org/viewvc?rev=1892542=rev Log: * STATUS: Nominate r1892541. Modified: subversion/branches/1.14.x/STATUS Modified: subversion/branches/1.14.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.14.x/STATUS?rev=1892542=1892541=1892542=diff == --- subversion/branches/1.14.x/STATUS (original) +++ subversion/branches/1.14.x/STATUS Mon Aug 23 09:29:44 2021 @@ -98,13 +98,14 @@ Candidate changes: Votes: +1: danielsh, dsahlberg - * r1892470, r1892471 + * r1892470, r1892471, r1892541 Fix an assertion failure triggered by the conflict resolver. Justification: Subversion should not crash. User complained. Votes: +1: stsp - -1: dsahlberg (FAILURE in conflicts-test, see dev@, comments to r1892471) + -1: dsahlberg (without r1892541: + FAILURE in conflicts-test, see dev@, comments to r1892471) Veto-blocked changes: =
svn commit: r1892541 - /subversion/trunk/subversion/libsvn_client/conflicts.c
Author: stsp Date: Mon Aug 23 09:28:50 2021 New Revision: 1892541 URL: http://svn.apache.org/viewvc?rev=1892541=rev Log: Follow-up to r1892471: Fix a regression where the resolver runs into a NULL-deref. The wc_move_targets hash map is now always allocated and this exposed missing NULL checks which resulted in attempts to search the hash map with NULL keys. This was exposed by a segfault in the following test: conflicts-test 45: cherry-pick edit from moved directory * subversion/libsvn_client/conflicts.c (resolve_incoming_move_file_text_merge, resolve_local_move_dir_merge, describe_incoming_move_merge_conflict_option, svn_client_conflict_option_get_moved_to_abspath_candidates2, svn_client_conflict_option_set_moved_to_abspath2): Ensure that we have a valid hash key before searching the wc_move_targets hash map. In all these cases this means that move_target_repos_relpath must not be a NULL pointer. 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=1892541=1892540=1892541=diff == --- subversion/trunk/subversion/libsvn_client/conflicts.c (original) +++ subversion/trunk/subversion/libsvn_client/conflicts.c Mon Aug 23 09:28:50 2021 @@ -8597,13 +8597,20 @@ resolve_incoming_move_file_text_merge(sv * Merge from the local move's target location to the * incoming move's target location. */ struct conflict_tree_local_missing_details *local_details; - apr_array_header_t *moves; local_details = conflict->tree_conflict_local_details; - moves = svn_hash_gets(local_details->wc_move_targets, -local_details->move_target_repos_relpath); - merge_source_abspath = -APR_ARRAY_IDX(moves, local_details->wc_move_target_idx, const char *); + if (local_details->wc_move_targets && + local_details->move_target_repos_relpath) +{ + apr_array_header_t *moves; + moves = svn_hash_gets(local_details->wc_move_targets, +local_details->move_target_repos_relpath); + merge_source_abspath = +APR_ARRAY_IDX(moves, local_details->wc_move_target_idx, +const char *); +} + else +merge_source_abspath = victim_abspath; } else merge_source_abspath = victim_abspath; @@ -9783,7 +9790,7 @@ resolve_local_move_dir_merge(svn_client_ NULL, conflict, scratch_pool, scratch_pool)); - if (details->wc_move_targets) + if (details->wc_move_targets && details->move_target_repos_relpath) { apr_array_header_t *moves; @@ -10732,7 +10739,8 @@ describe_incoming_move_merge_conflict_op struct conflict_tree_incoming_delete_details *details; details = conflict->tree_conflict_incoming_details; - if (details->wc_move_targets) + if (details->wc_move_targets && + details->move_target_repos_relpath) { apr_array_header_t *moves; @@ -12265,7 +12273,7 @@ svn_client_conflict_option_get_moved_to_ *possible_moved_to_abspaths = apr_array_make(result_pool, 1, sizeof (const char *)); - if (details->wc_move_targets) + if (details->wc_move_targets && details->move_target_repos_relpath) { apr_array_header_t *move_target_wc_abspaths; move_target_wc_abspaths = @@ -12459,7 +12467,7 @@ svn_client_conflict_option_set_moved_to_ svn_dirent_skip_ancestor(wcroot_abspath, preferred_sibling), scratch_pool)); } - else if (details->wc_move_targets) + else if (details->wc_move_targets && details->move_target_repos_relpath) { apr_array_header_t *move_target_wc_abspaths; move_target_wc_abspaths =
Re: svn commit: r1892471 - in /subversion/trunk/subversion: libsvn_client/conflicts.c libsvn_wc/wc_db.c tests/cmdline/merge_tree_conflict_tests.py
On Sat, Aug 21, 2021 at 09:38:56PM +0200, Daniel Sahlberg wrote: > > @@ -3028,12 +3028,12 @@ conflict_tree_get_details_local_missing( > >deleted_basename, > >conflict->pool); > >details->moves = moves; > > + details->wc_move_targets = apr_hash_make(conflict->pool); > >if (details->moves != NULL) > > { > >apr_pool_t *iterpool; > >int i; > > > > - details->wc_move_targets = apr_hash_make(conflict->pool); > >iterpool = svn_pool_create(scratch_pool); > >for (i = 0; i < details->moves->nelts; i++) > > { > > > > I have not investigated further (ENOTIME right now) but I presume some > other part of the code expects wc_move_targets to be NULL. The problem is that some parts of the code try to search the now non-NULL hash map with a NULL key because they lack checks for NULL keys. I will commit a fix shortly.