You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by iv...@apache.org on 2015/09/24 16:09:17 UTC

svn commit: r1705064 - /subversion/trunk/subversion/libsvn_ra_serf/serf.c

Author: ivan
Date: Thu Sep 24 14:09:17 2015
New Revision: 1705064

URL: http://svn.apache.org/viewvc?rev=1705064&view=rev
Log:
Resolve segfault in 'svn diff' when repository is on server root.

Found by: TortoiseSVN crash dump

* subversion/libsvn_ra_serf/serf.c
  (ra_serf_dup_session): Use svn_ra_serf__uri_parse() instead of
   apr_uri_parse() to convert URI.PATH to "/" if it's NULL.

Modified:
    subversion/trunk/subversion/libsvn_ra_serf/serf.c

Modified: subversion/trunk/subversion/libsvn_ra_serf/serf.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_serf/serf.c?rev=1705064&r1=1705063&r2=1705064&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_serf/serf.c (original)
+++ subversion/trunk/subversion/libsvn_ra_serf/serf.c Thu Sep 24 14:09:17 2015
@@ -734,18 +734,15 @@ ra_serf_dup_session(svn_ra_session_t *ne
 
   new_sess->repos_root_str = apr_pstrdup(result_pool,
                                          new_sess->repos_root_str);
-  status = apr_uri_parse(result_pool, new_sess->repos_root_str,
-                         &new_sess->repos_root);
-  if (status)
-    return svn_ra_serf__wrap_err(status, NULL);
+  SVN_ERR(svn_ra_serf__uri_parse(&new_sess->repos_root,
+                                 new_sess->repos_root_str,
+                                 result_pool));
 
   new_sess->session_url_str = apr_pstrdup(result_pool, new_session_url);
 
-  status = apr_uri_parse(result_pool, new_sess->session_url_str,
-                         &new_sess->session_url);
-
-  if (status)
-    return svn_ra_serf__wrap_err(status, NULL);
+  SVN_ERR(svn_ra_serf__uri_parse(&new_sess->session_url,
+                                 new_sess->session_url_str,
+                                 result_pool));
 
   /* svn_boolean_t supports_inline_props */
   /* supports_rev_rsrc_replay */