svn commit: r1892550 - /subversion/site/staging/packages.html

2021-08-23 Thread dsahlberg
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

2021-08-23 Thread dsahlberg
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

2021-08-23 Thread Daniel Sahlberg
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

2021-08-23 Thread stsp
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

2021-08-23 Thread stsp
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

2021-08-23 Thread 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.