relative_path() seems overly complicated and buggy - Mailing list pgsql-hackers

From Tom Lane
Subject relative_path() seems overly complicated and buggy
Date
Msg-id 11365.1099772806@sss.pgh.pa.us
Whole thread Raw
Responses Re: relative_path() seems overly complicated and buggy  (Bruce Momjian <pgman@candle.pha.pa.us>)
List pgsql-hackers
There's at least one bug in path.c's relative_path(): it will think
"/foo/a/b" is equal to "/foo/ab" because it skips directory separators
independently in the two strings.  The code is sufficiently complex that
I have little faith in it not having any other bugs, either.

I believe that it's unnecessary for relative_path to be so tense
about trying to implement platform-weirdness-aware comparison of paths.
It is not called on arbitrary paths, but only on the compiled-in
paths that were generated by configure.  Therefore it is reasonable
to assume that the common prefix we are trying to identify is spelled
exactly the same in both paths.

What I'd like to do is simplify it to just check for exact equality
up through the last directory separator in bin_path.  Any objections?
        regards, tom lane


pgsql-hackers by date:

Previous
From: Sean Chittenden
Date:
Subject: Re: Increasing the length of pg_stat_activity.current_query...
Next
From: Tom Lane
Date:
Subject: Re: cygwin build failure