aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/subversion/subversion-1.7.10/subversion-CVE-2013-4131.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/subversion/subversion-1.7.10/subversion-CVE-2013-4131.patch')
-rw-r--r--meta/recipes-devtools/subversion/subversion-1.7.10/subversion-CVE-2013-4131.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/meta/recipes-devtools/subversion/subversion-1.7.10/subversion-CVE-2013-4131.patch b/meta/recipes-devtools/subversion/subversion-1.7.10/subversion-CVE-2013-4131.patch
new file mode 100644
index 0000000000..88bd25e0d9
--- /dev/null
+++ b/meta/recipes-devtools/subversion/subversion-1.7.10/subversion-CVE-2013-4131.patch
@@ -0,0 +1,42 @@
+Upstream-Status: Backport
+
+Index: subversion/mod_dav_svn/repos.c
+===================================================================
+--- a/subversion/mod_dav_svn/repos.c (revision 1503527)
++++ b/subversion/mod_dav_svn/repos.c (revision 1503528)
+@@ -2408,21 +2408,12 @@
+ svn_boolean_t is_urlpath,
+ apr_pool_t *pool)
+ {
+- apr_size_t len;
+- char *tmp = apr_pstrdup(pool, path);
+-
+- len = strlen(tmp);
+-
+- if (len > 0)
++ if (*path != '\0') /* not an empty string */
+ {
+- /* Remove any trailing slash; else svn_path_dirname() asserts. */
+- if (tmp[len-1] == '/')
+- tmp[len-1] = '\0';
+-
+ if (is_urlpath)
+- return svn_urlpath__dirname(tmp, pool);
++ return svn_urlpath__dirname(path, pool);
+ else
+- return svn_fspath__dirname(tmp, pool);
++ return svn_fspath__dirname(path, pool);
+ }
+
+ return path;
+@@ -2458,7 +2449,9 @@
+ parent->versioned = 1;
+ parent->hooks = resource->hooks;
+ parent->pool = resource->pool;
+- parent->uri = get_parent_path(resource->uri, TRUE, resource->pool);
++ parent->uri = get_parent_path(svn_urlpath__canonicalize(resource->uri,
++ resource->pool),
++ TRUE, resource->pool);
+ parent->info = parentinfo;
+
+ parentinfo->uri_path =