You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by sv...@apache.org on 2013/06/26 06:00:52 UTC

svn commit: r1496727 - in /subversion/branches/1.8.x: ./ STATUS subversion/libsvn_client/log.c

Author: svn-role
Date: Wed Jun 26 04:00:51 2013
New Revision: 1496727

URL: http://svn.apache.org/r1496727
Log:
Merge r1496110 from trunk:

 * r1496110
   Prevent a segfault in svn_client_log5.
   Justification:
     No command line replication yet, but several reports of segfaults
    with TSVN, see http://svn.haxx.se/dev/archive-2013-06/0522.shtml.
   Votes:
     +1: pburba, stsp, ivan

Modified:
    subversion/branches/1.8.x/   (props changed)
    subversion/branches/1.8.x/STATUS
    subversion/branches/1.8.x/subversion/libsvn_client/log.c

Propchange: subversion/branches/1.8.x/
------------------------------------------------------------------------------
  Merged /subversion/trunk:r1496110

Modified: subversion/branches/1.8.x/STATUS
URL: http://svn.apache.org/viewvc/subversion/branches/1.8.x/STATUS?rev=1496727&r1=1496726&r2=1496727&view=diff
==============================================================================
--- subversion/branches/1.8.x/STATUS (original)
+++ subversion/branches/1.8.x/STATUS Wed Jun 26 04:00:51 2013
@@ -160,14 +160,6 @@ Veto-blocked changes:
 Approved changes:
 =================
 
- * r1496110
-   Prevent a segfault in svn_client_log5.
-   Justification:
-     No command line replication yet, but several reports of segfaults
-    with TSVN, see http://svn.haxx.se/dev/archive-2013-06/0522.shtml.
-   Votes:
-     +1: pburba, stsp, ivan
-
  * r1495432, r1495446
    Allow deleting non-regular properties from nodes.
    Justification:

Modified: subversion/branches/1.8.x/subversion/libsvn_client/log.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.8.x/subversion/libsvn_client/log.c?rev=1496727&r1=1496726&r2=1496727&view=diff
==============================================================================
--- subversion/branches/1.8.x/subversion/libsvn_client/log.c (original)
+++ subversion/branches/1.8.x/subversion/libsvn_client/log.c Wed Jun 26 04:00:51 2013
@@ -712,7 +712,17 @@ run_ra_get_log(apr_array_header_t *revis
       matching_segment = bsearch(&younger_rev, log_segments->elts,
                                  log_segments->nelts, log_segments->elt_size,
                                  compare_rev_to_segment);
-      SVN_ERR_ASSERT(*matching_segment);
+      /* LOG_SEGMENTS is supposed to represent the history of PATHS from
+         the oldest to youngest revs in REVISION_RANGES.  This function's
+         current sole caller svn_client_log5 *should* be providing
+         LOG_SEGMENTS that span the oldest to youngest revs in
+         REVISION_RANGES, even if one or more of the svn_location_segment_t's
+         returned have NULL path members indicating a gap in the history. So
+         MATCHING_SEGMENT should never be NULL, but clearly sometimes it is,
+         see http://svn.haxx.se/dev/archive-2013-06/0522.shtml
+         So to be safe we handle that case. */
+      if (matching_segment == NULL)
+        continue;
       
       /* A segment with a NULL path means there is gap in the history.
          We'll just proceed and let svn_ra_get_log2 fail with a useful