From c1e47ed8c883afba3c240e89d763a28a57ec1373 Mon Sep 17 00:00:00 2001 From: Jason Ginchereau Date: Tue, 13 Sep 2016 12:06:10 -0700 Subject: [PATCH] path: fix path.relative UNC path result When the result of a path.relative() is an absolute UNC path, it should include the leading backslashes. Fixes: https://github.com/nodejs/node/issues/8444 PR-URL: https://github.com/nodejs/node/pull/8523 Reviewed-By: Brian White Reviewed-By: James M Snell Reviewed-By: Bartosz Sosnowski --- lib/path.js | 6 +----- test/parallel/test-path.js | 4 +++- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/lib/path.js b/lib/path.js index 5637b328c1d..f2fb19edd9e 100644 --- a/lib/path.js +++ b/lib/path.js @@ -619,12 +619,8 @@ const win32 = { // We found a mismatch before the first common path separator was seen, so // return the original `to`. - // TODO: do this just for device roots (and not UNC paths)? if (i !== length && lastCommonSep === -1) { - if (toStart > 0) - return toOrig.slice(toStart); - else - return toOrig; + return toOrig; } var out = ''; diff --git a/test/parallel/test-path.js b/test/parallel/test-path.js index 5aa60eb7c66..cc6b302df43 100644 --- a/test/parallel/test-path.js +++ b/test/parallel/test-path.js @@ -492,7 +492,9 @@ const relativeTests = [ ['C:\\baz-quux', 'C:\\baz', '..\\baz'], ['C:\\baz', 'C:\\baz-quux', '..\\baz-quux'], ['\\\\foo\\baz-quux', '\\\\foo\\baz', '..\\baz'], - ['\\\\foo\\baz', '\\\\foo\\baz-quux', '..\\baz-quux'] + ['\\\\foo\\baz', '\\\\foo\\baz-quux', '..\\baz-quux'], + ['C:\\baz', '\\\\foo\\bar\\baz', '\\\\foo\\bar\\baz'], + ['\\\\foo\\bar\\baz', 'C:\\baz', 'C:\\baz'] ] ], [ path.posix.relative,