[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: New canonicalization functions [was: Subversion Exception!]

From: Branko Čibej <brane_at_apache.org>
Date: Sat, 15 Dec 2018 13:23:49 +0100

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 <julianfoad_at_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.
Received on 2018-12-15 13:23:57 CET

This is an archived mail posted to the Subversion Dev mailing list.