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/06 18:44:29 UTC
svn commit: r1211048 - in /subversion/trunk/subversion:
libsvn_wc/externals.c tests/cmdline/externals_tests.py
Author: philip
Date: Tue Dec 6 17:44:29 2011
New Revision: 1211048
URL: http://svn.apache.org/viewvc?rev=1211048&view=rev
Log:
Another attempt to fix issue 4073, assert on Windows for abspath
in svn:externals.
* subversion/libsvn_wc/externals.c
(svn_wc_parse_externals_description3): Check that the target path can
be joined and split.
* subversion/tests/cmdline/externals_tests.py
(disallow_dot_or_dotdot_directory_reference): Add two 4073 test cases.
Modified:
subversion/trunk/subversion/libsvn_wc/externals.c
subversion/trunk/subversion/tests/cmdline/externals_tests.py
Modified: subversion/trunk/subversion/libsvn_wc/externals.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/externals.c?rev=1211048&r1=1211047&r2=1211048&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/externals.c (original)
+++ subversion/trunk/subversion/libsvn_wc/externals.c Tue Dec 6 17:44:29 2011
@@ -302,7 +302,11 @@ svn_wc_parse_externals_description3(apr_
if (item->target_dir[0] == '\0'
|| svn_dirent_is_absolute(item->target_dir)
- || svn_path_is_backpath_present(item->target_dir))
+ || svn_path_is_backpath_present(item->target_dir)
+ || !svn_dirent_skip_ancestor("dummy",
+ svn_dirent_join("dummy",
+ item->target_dir,
+ pool)))
return svn_error_createf
(SVN_ERR_CLIENT_INVALID_EXTERNALS_DESCRIPTION, NULL,
_("Invalid %s property on '%s': "
Modified: subversion/trunk/subversion/tests/cmdline/externals_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/externals_tests.py?rev=1211048&r1=1211047&r2=1211048&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/externals_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/externals_tests.py Tue Dec 6 17:44:29 2011
@@ -709,6 +709,10 @@ def disallow_dot_or_dotdot_directory_ref
if svntest.main.is_os_windows():
externals_value_9 = external_urls.pop() + " D:/foo\n"
if not external_urls: external_urls = list(external_url_for.values())
+ externals_value_10 = external_urls.pop() + " D:\\foo\n"
+ if not external_urls: external_urls = list(external_url_for.values())
+ externals_value_11 = external_urls.pop() + " D:foo\n"
+ if not external_urls: external_urls = list(external_url_for.values())
set_externals_for_path_expect_error(B_path, externals_value_1)
set_externals_for_path_expect_error(G_path, externals_value_2)
@@ -720,6 +724,8 @@ def disallow_dot_or_dotdot_directory_ref
set_externals_for_path_expect_error(H_path, externals_value_8)
if svntest.main.is_os_windows():
set_externals_for_path_expect_error(B_path, externals_value_9)
+ set_externals_for_path_expect_error(B_path, externals_value_10)
+ set_externals_for_path_expect_error(B_path, externals_value_11)
#----------------------------------------------------------------------