Author: julianfoad
Date: Wed Apr  4 12:15:58 2012
New Revision: 1309353

URL: http://svn.apache.org/viewvc?rev=1309353&view=rev
Log:
* subversion/libsvn_client/util.c
  (svn_client__pathrev_create, svn_client__pathrev_create_with_relpath):
    Assert valid inputs.
  (svn_client__pathrev_create_with_session): Fix a pool bug. Assert valid
    inputs. Fix indentation.

Modified:
    subversion/trunk/subversion/libsvn_client/util.c

Modified: subversion/trunk/subversion/libsvn_client/util.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/util.c?rev=1309353&r1=1309352&r2=1309353&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/util.c (original)
+++ subversion/trunk/subversion/libsvn_client/util.c Wed Apr  4 12:15:58 2012
@@ -50,6 +50,9 @@ svn_client__pathrev_create(const char *r
 {
   svn_client__pathrev_t *loc = apr_palloc(result_pool, sizeof(*loc));
 
+  SVN_ERR_ASSERT_NO_RETURN(svn_path_is_url(repos_root_url));
+  SVN_ERR_ASSERT_NO_RETURN(svn_path_is_url(url));
+
   loc->repos_root_url = apr_pstrdup(result_pool, repos_root_url);
   loc->repos_uuid = apr_pstrdup(result_pool, repos_uuid);
   loc->rev = rev;
@@ -64,6 +67,8 @@ svn_client__pathrev_create_with_relpath(
                                         const char *relpath,
                                         apr_pool_t *result_pool)
 {
+  SVN_ERR_ASSERT_NO_RETURN(svn_relpath_is_canonical(relpath));
+
   return svn_client__pathrev_create(
            repos_root_url, repos_uuid, rev,
            svn_path_url_add_component2(repos_root_url, relpath, result_pool),
@@ -72,18 +77,20 @@ svn_client__pathrev_create_with_relpath(
 
 svn_error_t *
 svn_client__pathrev_create_with_session(svn_client__pathrev_t **pathrev_p,
-                                         svn_ra_session_t *ra_session,
-                                         svn_revnum_t rev,
-                                         const char *url,
-                                         apr_pool_t *result_pool)
+                                        svn_ra_session_t *ra_session,
+                                        svn_revnum_t rev,
+                                        const char *url,
+                                        apr_pool_t *result_pool)
 {
   svn_client__pathrev_t *pathrev = apr_palloc(result_pool, sizeof(*pathrev));
 
+  SVN_ERR_ASSERT(svn_path_is_url(url));
+
   SVN_ERR(svn_ra_get_repos_root2(ra_session, &pathrev->repos_root_url,
                                  result_pool));
   SVN_ERR(svn_ra_get_uuid2(ra_session, &pathrev->repos_uuid, result_pool));
   pathrev->rev = rev;
-  pathrev->url = url;
+  pathrev->url = apr_pstrdup(result_pool, url);
   *pathrev_p = pathrev;
   return SVN_NO_ERROR;
 }


Reply via email to