> -----Original Message----- > From: gst...@apache.org [mailto:gst...@apache.org] > Sent: zondag 18 april 2010 23:17 > To: comm...@subversion.apache.org > Subject: svn commit: r935413 - > /subversion/trunk/subversion/libsvn_wc/adm_crawler.c > > Author: gstein > Date: Sun Apr 18 21:16:55 2010 > New Revision: 935413 > > URL: http://svn.apache.org/viewvc?rev=935413&view=rev > Log: > Fix potential URI encoding/decoding bug. > > * subversion/libsvn_wc/adm_crawler.c: > (report_revisions_and_depths): wrap a couple comments. when the child > is > stripped off the URI, then decode it before comparison. > > Modified: > subversion/trunk/subversion/libsvn_wc/adm_crawler.c > > Modified: subversion/trunk/subversion/libsvn_wc/adm_crawler.c > URL: > http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/adm_ > crawler.c?rev=935413&r1=935412&r2=935413&view=diff > ======================================================================= > ======= > --- subversion/trunk/subversion/libsvn_wc/adm_crawler.c (original) > +++ subversion/trunk/subversion/libsvn_wc/adm_crawler.c Sun Apr 18 > 21:16:55 2010 > @@ -360,8 +360,8 @@ report_revisions_and_depths(svn_wc__db_t > } > else > { > - /* We want to pull in the excluded target. So, report it > as deleted, > - and server will respond properly. */ > + /* We want to pull in the excluded target. So, report it > as > + deleted, and server will respond properly. */ > if (! report_everything) > SVN_ERR(reporter->delete_path(report_baton, > this_path, iterpool)); > @@ -424,10 +424,10 @@ report_revisions_and_depths(svn_wc__db_t > else > missing = TRUE; > > - /* If a node is still missing from disk here, we have no way > to recreate > - it locally, so report as missing and move along. Again, > don't bother > - if we're reporting everything, because the dir is already > missing on > - the server. */ > + /* If a node is still missing from disk here, we have no way > to > + recreate it locally, so report as missing and move along. > + Again, don't bother if we're reporting everything, > because the > + dir is already missing on the server. */ > if (missing && wrk_kind == svn_wc__db_kind_dir > && (depth > svn_depth_files || depth == > svn_depth_unknown)) > { > @@ -450,7 +450,8 @@ report_revisions_and_depths(svn_wc__db_t > const char *childname = svn_uri_is_child(dir_repos_relpath, > this_repos_relpath, > NULL);
s/svn_uri/svn_relpath/ > > - if (!childname || strcmp(childname, child) != 0) > + if (childname == NULL > + || strcmp(svn_path_uri_decode(childname, iterpool), > child) != 0) A repos relpath is already uri_decoded, so this would break paths that have a literal %20 somewhere. (It would be correct if it was a real uri instead of a relpath) Bert