diff options
| author | Bond-009 <bond.009@outlook.com> | 2021-05-05 17:20:14 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-05-05 17:20:14 +0200 |
| commit | a6ee4632ce618e60909aa4310e33d60dcdfc1aec (patch) | |
| tree | 3880eaee928aa7950c9392286dbc7321b5784679 /Emby.Server.Implementations/Library/PathExtensions.cs | |
| parent | d729a7670782c3a002485bdd3ffefa8651b14d27 (diff) | |
| parent | 47e7c1356c1364e5e834ce37cd4a9ace5e2d838e (diff) | |
Merge pull request #5987 from Bond-009/ioob
PathExtensions: Fix index out of bounds in TryReplaceSubPath
Diffstat (limited to 'Emby.Server.Implementations/Library/PathExtensions.cs')
| -rw-r--r-- | Emby.Server.Implementations/Library/PathExtensions.cs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/Emby.Server.Implementations/Library/PathExtensions.cs b/Emby.Server.Implementations/Library/PathExtensions.cs index 770cf6bb0..0de4edb7e 100644 --- a/Emby.Server.Implementations/Library/PathExtensions.cs +++ b/Emby.Server.Implementations/Library/PathExtensions.cs @@ -96,8 +96,14 @@ namespace Emby.Server.Implementations.Library // We have to ensure that the sub path ends with a directory separator otherwise we'll get weird results // when the sub path matches a similar but in-complete subpath var oldSubPathEndsWithSeparator = subPath[^1] == newDirectorySeparatorChar; - if (!path.StartsWith(subPath, StringComparison.OrdinalIgnoreCase) - || (!oldSubPathEndsWithSeparator && path[subPath.Length] != newDirectorySeparatorChar)) + if (!path.StartsWith(subPath, StringComparison.OrdinalIgnoreCase)) + { + return false; + } + + if (path.Length > subPath.Length + && !oldSubPathEndsWithSeparator + && path[subPath.Length] != newDirectorySeparatorChar) { return false; } |
