Author: stsp
Date: Tue Aug 3 13:35:52 2010
New Revision: 981869
URL: http://svn.apache.org/viewvc?rev=981869&view=rev
Log:
* subversion/libsvn_client/commit.c,
subversion/svn/import-cmd.c:
(svn_client_import4, svn_cl__import): Raise an error if the first
argument to svn import is a URL. Fixes a user-triggerable assertion.
* subversion/tests/cmdline/input_validation_tests.py
(invalid_import_args, test_list): New test.
Modified:
subversion/trunk/subversion/libsvn_client/commit.c
subversion/trunk/subversion/svn/import-cmd.c
subversion/trunk/subversion/tests/cmdline/input_validation_tests.py
Modified: subversion/trunk/subversion/libsvn_client/commit.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/commit.c?rev=981869&r1=981868&r2=981869&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/commit.c (original)
+++ subversion/trunk/subversion/libsvn_client/commit.c Tue Aug 3 13:35:52 2010
@@ -694,6 +694,11 @@ svn_client_import4(const char *path,
const char *dir;
apr_pool_t *subpool;
+ if (svn_path_is_url(path))
+ return svn_error_return(svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
+ _("'%s' is not a local path"),
+ path));
+
SVN_ERR(svn_dirent_get_absolute(&local_abspath, path, pool));
base_dir_abspath = local_abspath;
Modified: subversion/trunk/subversion/svn/import-cmd.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/import-cmd.c?rev=981869&r1=981868&r2=981869&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/import-cmd.c (original)
+++ subversion/trunk/subversion/svn/import-cmd.c Tue Aug 3 13:35:52 2010
@@ -100,6 +100,11 @@ svn_cl__import(apr_getopt_t *os,
url = APR_ARRAY_IDX(targets, 1, const char *);
}
+ if (svn_path_is_url(path))
+ return svn_error_return(svn_error_createf(SVN_ERR_CL_ARG_PARSING_ERROR,
+ NULL,
+ _("'%s' is not a local path"),
+ path));
if (! svn_path_is_url(url))
return svn_error_createf
(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
Modified: subversion/trunk/subversion/tests/cmdline/input_validation_tests.py
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/input_validation_tests.py?rev=981869&r1=981868&r2=981869&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/input_validation_tests.py
(original)
+++ subversion/trunk/subversion/tests/cmdline/input_validation_tests.py Tue Aug
3 13:35:52 2010
@@ -131,6 +131,16 @@ def invalid_export_targets(sbox):
run_and_verify_svn_in_wc(sbox, "svn:.*is not a local path",
'export', '.', target)
+def invalid_import_args(sbox):
+ "invalid arguments for 'import'"
+ sbox.build(read_only=True)
+ run_and_verify_svn_in_wc(sbox, "svn:.*is not a local path",
+ 'import', '^/', '^/')
+ run_and_verify_svn_in_wc(sbox, "svn:.*is not a local path",
+ 'import', '^/', 'iota')
+ run_and_verify_svn_in_wc(sbox, "svn: Invalid URL 'iota'",
+ 'import', 'iota', 'iota')
+
########################################################################
# Run the tests
@@ -145,6 +155,7 @@ test_list = [ None,
invalid_delete_targets,
invalid_diff_targets,
invalid_export_targets,
+ invalid_import_args,
]
if __name__ == '__main__':