* DiscImageChef.DiscImages/GDI.cs:

* DiscImageChef.DiscImages/CDRDAO.cs:
	* DiscImageChef.DiscImages/CDRWin.cs:
	  Prevent reading binary files.

	* DiscImageChef.Filters/MacBinary.cs:
	  Adds more sanity checks.
This commit is contained in:
2016-09-17 21:23:01 +01:00
parent a7e64c86ae
commit dc31b282b6
6 changed files with 124 additions and 8 deletions

View File

@@ -244,7 +244,17 @@ namespace DiscImageChef.ImagePlugins
try
{
imageFilter.GetDataForkStream().Seek(0, SeekOrigin.Begin);
tocStream = new StreamReader(imageFilter.GetDataForkStream());
byte[] testArray = new byte[512];
imageFilter.GetDataForkStream().Read(testArray, 0, 512);
imageFilter.GetDataForkStream().Seek(0, SeekOrigin.Begin);
// Check for unexpected control characters that shouldn't be present in a text file and can crash this plugin
foreach(byte b in testArray)
{
if(b < 0x20 && b != 0x0A && b != 0x0D)
return false;
}
tocStream = new StreamReader(imageFilter.GetDataForkStream());
string _line = tocStream.ReadLine();
Regex Dr = new Regex(DiskTypeRegEx);