freebsd-dev/usr.bin/xinstall
Kyle Evans 6cbda6d943 install(1): Fix relative path calculation with partial common dest/src
For example, from the referenced PR [1]:

$ mkdir /tmp/lib/ /tmp/libexec
$ touch /tmp/lib/foo.so
$ install -lrs /tmp/lib/foo.so /tmp/libexec/

The common path identification bits terminate src at /tmp/lib/ and the
destination at /tmp/libe. The subsequent backtracking is then incorrect, as
it traverses the destination and backtraces exactly one level while eating
the 'libexec' because it was previously (falsely) identified as common with
'lib'.

The obvious fix would be to make sure we've actually terminated just after
directory separators and rewind a character if we haven't. In the above
example, we would end up rewinding to /tmp/ and subsequently doing the right
thing.

Test case added.

PR:		235330 [1]
MFC after:	1 week
2019-01-31 05:20:11 +00:00
..
tests install(1): Fix relative path calculation with partial common dest/src 2019-01-31 05:20:11 +00:00
install.1 xinstall: renumber UCB clauses to avoid skipping #3 2015-09-25 20:25:18 +00:00
Makefile Allow xinstall and makefs to be crossbuilt on Linux and Mac 2018-01-16 21:43:46 +00:00
Makefile.depend DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
xinstall.c install(1): Fix relative path calculation with partial common dest/src 2019-01-31 05:20:11 +00:00