From 3403ddf993771c2f5ac42b2cc7a88b50cf5f208f Mon Sep 17 00:00:00 2001 From: Mitchell Cash Date: Sat, 8 Apr 2017 21:34:17 +1000 Subject: [PATCH] Fixed: Zero length file causes MediaInfo hanging in 100% cpu load. (#1340) --- src/NzbDrone.Core/MediaFiles/MediaInfo/MediaInfoLib.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/NzbDrone.Core/MediaFiles/MediaInfo/MediaInfoLib.cs b/src/NzbDrone.Core/MediaFiles/MediaInfo/MediaInfoLib.cs index b7b2f7d38..b18e2e462 100644 --- a/src/NzbDrone.Core/MediaFiles/MediaInfo/MediaInfoLib.cs +++ b/src/NzbDrone.Core/MediaFiles/MediaInfo/MediaInfoLib.cs @@ -189,6 +189,11 @@ namespace NzbDrone.Core.MediaFiles.MediaInfo public int Open(Stream stream) { + if (stream.Length < 1024) + { + return 0; + } + var isValid = (int)MediaInfo_Open_Buffer_Init(_handle, stream.Length, 0); if (isValid == 1) { @@ -203,7 +208,7 @@ namespace NzbDrone.Core.MediaFiles.MediaInfo totalRead += bufferRead; var status = (BufferStatus)MediaInfo_Open_Buffer_Continue(_handle, buffer, (IntPtr)bufferRead); - + if (status.HasFlag(BufferStatus.Finalized) || status <= 0 || bufferRead == 0) { Logger.Trace("Read file offset {0}-{1} ({2} bytes)", seekStart, stream.Position, stream.Position - seekStart);