Prechádzať zdrojové kódy

Merge pull request #5746 from cvium/dangling-symlinks

(cherry picked from commit 62117a6c125f2f35ca3c9d7507f3464482caa7f1)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
Bond-009 4 rokov pred
rodič
commit
f77673438e

+ 11 - 2
Emby.Server.Implementations/IO/ManagedFileSystem.cs

@@ -249,9 +249,18 @@ namespace Emby.Server.Implementations.IO
                     // Issue #2354 get the size of files behind symbolic links
                     if (fileInfo.Attributes.HasFlag(FileAttributes.ReparsePoint))
                     {
-                        using (Stream thisFileStream = File.OpenRead(fileInfo.FullName))
+                        try
                         {
-                            result.Length = thisFileStream.Length;
+                            using (Stream thisFileStream = File.OpenRead(fileInfo.FullName))
+                            {
+                                result.Length = thisFileStream.Length;
+                            }
+                        }
+                        catch (FileNotFoundException ex)
+                        {
+                            // Dangling symlinks cannot be detected before opening the file unfortunately...
+                            Logger.LogError(ex, "Reading the file size of the symlink at {Path} failed. Marking the file as not existing.", fileInfo.FullName);
+                            result.Exists = false;
                         }
                     }