[Mono-dev] GetFileSystemEntries() can return null, but very few null checks
Steven Boswell II
ulatekh at yahoo.com
Sat Jun 9 00:43:40 UTC 2012
Today, rather randomly, I got an unhandled NullReferenceException in mcs/class/System/System.IO/DefaultWatcher.cs at line 221 -- "files" was null. All the places that "files" gets set can't be null, except for the one on line 204, a call to Directory.GetFileSystemEntries(). That led to mcs/class/corlib/System.IO/Directory.cs line 497, which led to mcs/class/corlib/System.IO/MonoIO.cs line 177, which led to a C function called ves_icall_System_IO_MonoIO_GetFileSystemEntries(), which starts at line 319 of mono/metadata/file-io.c . That function can return null in several different ways.
Looking around, this seems to be a general problem...
Files that call GetFileSystemEntries() and check for null:
Files that call GetFileSystemEntries() without checking for null:
Files with a GetFileSystemEntries() that can return null:
If fixing this is as simple as adding null checks to the affected areas, I can crank that out and submit a patch. Otherwise, someone more knowledgeable than me needs to look into this.
I don't see any bug reports in either bugzilla.novell.com or bugzilla.xamarin.com about this issue. I searched "Mono class libraries" and "Mono runtime". There were a few other issues related to GetFileSystemEntries(), but none that sounded like this. So I filed one... https://bugzilla.xamarin.com/show_bug.cgi?id=5591 .
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Mono-devel-list