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 */