Skip to content

Commit 82e155e

Browse files
committed
Fixd bug where some shortened filenames would be reserved names such as "con".
1 parent d032336 commit 82e155e

1 file changed

Lines changed: 2 additions & 1 deletion

File tree

src/DotNetOpenAuth.BuildTasks/PathSegment.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ internal class PathSegment {
2020
private readonly string originalName;
2121
private string currentName;
2222
private bool minimized;
23+
private static readonly string[] ReservedFileNames = "CON PRN AUX CLOCK$ NUL COM0 COM1 COM2 COM3 COM4 COM5 COM6 COM7 COM8 COM9 LPT0 LPT1 LPT2 LPT3 LPT4 LPT5 LPT6 LPT7 LPT8 LPT9".Split(' ');
2324

2425
internal PathSegment() {
2526
this.currentName = string.Empty;
@@ -232,7 +233,7 @@ private string GetUniqueShortName(string preferredPrefix, string preferredSuffix
232233
Contract.Ensures(Contract.Result<string>().Length <= allowableLength);
233234
string candidateName = string.Empty;
234235
int i;
235-
for (i = -1; candidateName.Length == 0 || this.Siblings.Any(child => string.Equals(child.CurrentName, candidateName, StringComparison.OrdinalIgnoreCase)); i++) {
236+
for (i = -1; candidateName.Length == 0 || ReservedFileNames.Contains(candidateName, StringComparer.OrdinalIgnoreCase) || this.Siblings.Any(child => string.Equals(child.CurrentName, candidateName, StringComparison.OrdinalIgnoreCase)); i++) {
236237
string unique = i < 0 ? string.Empty : i.ToString("x");
237238
if (allowableLength < unique.Length) {
238239
throw new InvalidOperationException("Unable to shorten path sufficiently to fit constraints.");

0 commit comments

Comments
 (0)