Philip Martin wrote on Fri, Jul 08, 2011 at 19:30:02 +0100:
> Daniel Shahaf <[email protected]> writes:
> 
> > [email protected] wrote on Fri, Jul 08, 2011 at 14:02:42 -0000:
> >> Author: philip
> >> Date: Fri Jul  8 14:02:42 2011
> >> New Revision: 1144316
> >> 
> >> URL: http://svn.apache.org/viewvc?rev=1144316&view=rev
> >> Log:
> >> Fix issue 3953, mod_dav_svn failing to reject bogus mergeinfo on commit.
> >> Move server-side mergeinfo validation so that all RA layers use it.
> >> 
> > ...
> >> @@ -222,6 +255,9 @@ svn_repos_fs_change_node_prop(svn_fs_roo
> >>                                const svn_string_t *value,
> >>                                apr_pool_t *pool)
> >>  {
> >> +  if (value && strcmp(name, SVN_PROP_MERGEINFO) == 0)
> >> +    SVN_ERR(verify_mergeinfo(value, path, pool));
> >> +
> >>    /* Validate the property, then call the wrapped function. */
> >>    SVN_ERR(svn_repos__validate_prop(name, value, pool));
> >>    return svn_fs_change_node_prop(root, path, name, value, pool);
> >> 
> >
> > Shouldn't the call to verify_mergeinfo() be made by
> > svn_repos__validate_prop(), rather than here?
> 
> Perhaps.  svn_repos__validate_prop is also used by
> svn_repos_fs_change_txn_props, is it appropriate to validate mergeinfo
> there?
> 

Why not?  No one should be setting svn:mergeinfo as a txnprop (or
revprop).  (and if they do, they shouldn't use the svn:* namespace)

> We should probably split the validate function into two, one for node
> props and one for revprops.
> 

Given that we don't have any SVN_PROP_* whose semantics differ when it's
set as a revprop v. when it's set as a nodeprop, I'm not sure what this
would gain; I'm ±0.

Unless, perhaps, you want to add verification that svn:mergeinfo isn't
set as a revprop and svn:log isn't set as a nodeprop?  Feel free to do
so, but then I suggest you'll also teach svnsync et al to strip those
(ill-set) properties to avoid breaking any repositories out there that
do have svn:mergeinfo revprops and svn:log nodeprops.

> -- 
> uberSVN: Apache Subversion Made Easy
> http://www.uberSVN.com

Reply via email to