You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by rh...@apache.org on 2014/01/10 12:44:06 UTC
svn commit: r1557094 - in /subversion/trunk/subversion/mod_dav_svn: util.c
version.c
Author: rhuijben
Date: Fri Jan 10 11:44:06 2014
New Revision: 1557094
URL: http://svn.apache.org/r1557094
Log:
* subversion/mod_dav_svn/util.c
(dav_svn__build_uri): Avoid segfault when root_path is "". This case
should be unreachable after the other change, but this is hard to tell.
* subversion/mod_dav_svn/version.c
(get_option):
Don't advertise http-v2 support urls unless there is an actual repository
These urls won't work anyway, as that would require a working repository
at this location.
Found by: lgo
Modified:
subversion/trunk/subversion/mod_dav_svn/util.c
subversion/trunk/subversion/mod_dav_svn/version.c
Modified: subversion/trunk/subversion/mod_dav_svn/util.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/mod_dav_svn/util.c?rev=1557094&r1=1557093&r2=1557094&view=diff
==============================================================================
--- subversion/trunk/subversion/mod_dav_svn/util.c (original)
+++ subversion/trunk/subversion/mod_dav_svn/util.c Fri Jan 10 11:44:06 2014
@@ -237,10 +237,11 @@ dav_svn__build_uri(const dav_svn_repos *
const char *href1 = add_href ? "<D:href>" : "";
const char *href2 = add_href ? "</D:href>" : "";
- /* The first character of root_path is guaranteed to be "/". If
- there's no component beyond that, then just use "", so that
- appending another "/" later does not result in "//". */
- if (root_path[1] == '\0')
+ /* The first character of root_path is guaranteed to be "/" for
+ every location except the server root. If there's no component
+ beyond that, then just use "", so that appending another "/"
+ later does not result in "//". */
+ if (root_path[0] == '/' && root_path[1] == '\0')
root_path = "";
switch (what)
Modified: subversion/trunk/subversion/mod_dav_svn/version.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/mod_dav_svn/version.c?rev=1557094&r1=1557093&r2=1557094&view=diff
==============================================================================
--- subversion/trunk/subversion/mod_dav_svn/version.c (original)
+++ subversion/trunk/subversion/mod_dav_svn/version.c Fri Jan 10 11:44:06 2014
@@ -177,9 +177,6 @@ get_option(const dav_resource *resource,
apr_text_header *option)
{
request_rec *r = resource->info->r;
- const char *repos_root_uri =
- dav_svn__build_uri(resource->info->repos, DAV_SVN__BUILD_URI_PUBLIC,
- SVN_IGNORED_REVNUM, "", 0, resource->pool);
/* ### DAV:version-history-collection-set */
if (elem->ns == APR_XML_NS_DAV_ID)
@@ -265,11 +262,15 @@ get_option(const dav_resource *resource,
/* Welcome to the 2nd generation of the svn HTTP protocol, now
DeltaV-free! If we're configured to advise this support, do so. */
- if (resource->info->repos->v2_protocol)
+ if (resource->info->repos->v2_protocol
+ && resource->info->repos->repos)
{
int i;
svn_version_t *master_version = dav_svn__get_master_version(r);
dav_svn__bulk_upd_conf bulk_upd_conf = dav_svn__get_bulk_updates_flag(r);
+ const char *repos_root_uri =
+ dav_svn__build_uri(resource->info->repos, DAV_SVN__BUILD_URI_PUBLIC,
+ SVN_IGNORED_REVNUM, "", 0, resource->pool);
/* The list of Subversion's custom POSTs and which versions of
Subversion support them. We need this latter information