On 15.12.2018 12:24, Branko Čibej wrote: > On 14.12.2018 19:05, Branko Čibej wrote: >> On Fri, 14 Dec 2018, 18:14 Julian Foad <julianf...@apache.org wrote: >> >>> Julian Foad wrote: >>>> Are you willing to add random-input testing for them? >>> The attached patch 'dirent-uri-test-random-2.patch' tests rules like: >>> >>> * every result should pass an X_is_canonical() test (obvious by code >>> inspection); >>> * every other input should produce SVN_ERR_CANONICALIZATION_FAILED; >>> * when a path is "canonical", it should be unchanged by "canonicalize". >>> >>> Some findings: >>> >>> * svn_uri_canonicalize_safe("") aborts; >>> * svn_uri_canonicalize_safe("/foo") aborts; >>> >> We can fix this in the private "canonicalize()" function that all these >> eventually call. As before, I didn't have time to unknit the internal >> implementation. > > I saw a funny thing in that function the other day ... > > if (SVN_PATH_IS_EMPTY(path)) > { > assert(type != type_uri); > return ""; > }
r1848990. There were two assertions in that function. Note that we'll also have to create "safe" versions of the _internal_style() functions, because those pass their result through their _canonicalize() colleagues. -- Brane P.S.: Replacing all assertions in libsvn_subr/dirent_uri.c will cause code churn of awseome proportions.