[Mono-bugs] [Bug 42960][Nor] New - Directory.CreateDirectory enters in infinite loop
bugzilla-daemon@rocky.ximian.com
bugzilla-daemon@rocky.ximian.com
Wed, 14 May 2003 06:19:59 -0400 (EDT)
Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.
Changed by yannis.bres@sophia.inria.fr.
http://bugzilla.ximian.com/show_bug.cgi?id=42960
--- shadow/42960 Wed May 14 06:19:59 2003
+++ shadow/42960.tmp.9984 Wed May 14 06:19:59 2003
@@ -0,0 +1,82 @@
+Bug#: 42960
+Product: Mono/Runtime
+Version: unspecified
+OS:
+OS Details: XP SP1
+Status: NEW
+Resolution:
+Severity:
+Priority: Normal
+Component: misc
+AssignedTo: mono-bugs@ximian.com
+ReportedBy: Yannis.BRES@sophia.inria.fr
+QAContact: mono-bugs@ximian.com
+TargetMilestone: ---
+URL:
+Summary: Directory.CreateDirectory enters in infinite loop
+
+Description of Problem:
+Directory.CreateDirectory enters in infinite loop, consuming all the
+memory available
+
+Steps to reproduce the problem:
+1. Compile and run the following program
+
+Actual Results:
+About to call Directory.CreateDirectory( X )...
+
+Expected Results:
+About to call Directory.CreateDirectory( X )...
+Directory.CreateDirectory( X ) returned
+Directory X successfully built
+About to call Directory.CreateDirectory( X/Y )...
+Directory.CreateDirectory( X/Y ) returned
+Directory X/Y successfully built
+About to call Directory.CreateDirectory( X\Z )...
+Directory.CreateDirectory( X\Z ) returned
+Directory X\Z successfully built
+About to call Directory.CreateDirectory( 1/2/3 )...
+Directory.CreateDirectory( 1/2/3 ) returned
+Directory 1/2/3 successfully built
+About to call Directory.CreateDirectory( A\B\C )...
+Directory.CreateDirectory( A\B\C ) returned
+Directory A\B\C successfully built
+
+How often does this happen?
+Always
+
+Additional Information:
+The program :
+using System;
+using System.IO;
+
+public class PathSeparator
+{
+ static void Main( string[] args )
+ {
+ foreach (String dir_name in (new String[]
+{ "X", "X/Y", "X\\Z", "1/2/3", "A\\B\\C" }))
+ {
+ try
+ {
+ Console.Error.WriteLine( "About to call Directory.CreateDirectory
+( {0} )...", dir_name );
+ Directory.CreateDirectory( dir_name );
+ Console.Error.WriteLine( "Directory.CreateDirectory( {0} )
+returned", dir_name );
+
+ if ((new DirectoryInfo( dir_name )).Exists)
+ Console.Error.WriteLine( "Directory {0} successfully built",
+dir_name );
+ else
+ Console.Error.WriteLine( "Directory {0} creation failed:
+directory does not exist", dir_name );
+ }
+ catch (Exception e)
+ {
+ Console.Error.WriteLine( "Directory {0} creation failed: {1}",
+dir_name, e.Message );
+ }
+ }
+ }
+}