You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ph...@apache.org on 2011/12/08 13:47:13 UTC
svn commit: r1211859 - in /subversion/trunk/subversion:
libsvn_client/delete.c tests/cmdline/basic_tests.py
Author: philip
Date: Thu Dec 8 12:47:13 2011
New Revision: 1211859
URL: http://svn.apache.org/viewvc?rev=1211859&view=rev
Log:
Fix issue 4074, "svn rm root_url" SEGV.
* subversion/libsvn_client/delete.c
(delete_urls_multi_repos): Ensure we have a valid relpath.
* subversion/tests/cmdline/basic_tests.py
(basic_delete): Extend with new test case.
Modified:
subversion/trunk/subversion/libsvn_client/delete.c
subversion/trunk/subversion/tests/cmdline/basic_tests.py
Modified: subversion/trunk/subversion/libsvn_client/delete.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/delete.c?rev=1211859&r1=1211858&r2=1211859&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/delete.c (original)
+++ subversion/trunk/subversion/libsvn_client/delete.c Thu Dec 8 12:47:13 2011
@@ -272,6 +272,12 @@ delete_urls_multi_repos(const apr_array_
APR_ARRAY_PUSH(relpaths_list, const char *) = repos_relpath;
}
+ /* Check we identified a non-root relpath. Return an FS error
+ similar to the one further down. */
+ if (!repos_relpath || !*repos_relpath)
+ return svn_error_createf(SVN_ERR_FS_NOT_FOUND, NULL,
+ "URL '%s' not within a repository root", uri);
+
/* Now, test to see if the thing actually exists. */
SVN_ERR(svn_ra_check_path(ra_session, repos_relpath, SVN_INVALID_REVNUM,
&kind, pool));
Modified: subversion/trunk/subversion/tests/cmdline/basic_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/basic_tests.py?rev=1211859&r1=1211858&r2=1211859&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/basic_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/basic_tests.py Thu Dec 8 12:47:13 2011
@@ -999,6 +999,7 @@ def verify_dir_deleted(path):
return 1
+@Issue(687,4074)
def basic_delete(sbox):
"basic delete command"
@@ -1190,6 +1191,12 @@ def basic_delete(sbox):
'rm', '-m', 'delete iota URL',
iota_URL)
+ # Issue 4074, deleting a root url SEGV.
+ expected_error = 'svn: E160013: .*not within a repository root'
+ svntest.actions.run_and_verify_svn(None, [], expected_error,
+ 'rm', sbox.repo_url,
+ '--message', 'delete root')
+
#----------------------------------------------------------------------
def basic_checkout_deleted(sbox):