Backport pull request #15659 from jellyfin/release-10.11.z

Fix thumbnails never deletes from temp folder ( issue #15629 )

Original-merge: 636908fc4d

Merged-by: crobibero <cody@robibe.ro>

Backported-by: Bond_009 <bond.009@outlook.com>
This commit is contained in:
liszto
2025-12-28 07:22:11 -05:00
committed by Bond_009
parent c30654c33c
commit 24acd94015

View File

@@ -209,8 +209,11 @@ public class SkiaEncoder : IImageEncoder
return default;
}
using var codec = SKCodec.Create(safePath, out var result);
SKCodec? codec = null;
bool isSafePathTemp = !string.Equals(Path.GetFullPath(safePath), Path.GetFullPath(path), StringComparison.OrdinalIgnoreCase);
try
{
codec = SKCodec.Create(safePath, out var result);
switch (result)
{
case SKCodecResult.Success:
@@ -231,7 +234,6 @@ public class SkiaEncoder : IImageEncoder
default:
{
var boundsInfo = SKBitmap.DecodeBounds(safePath);
if (boundsInfo.Width > 0 && boundsInfo.Height > 0)
{
return new ImageDimensions(boundsInfo.Width, boundsInfo.Height);
@@ -241,10 +243,38 @@ public class SkiaEncoder : IImageEncoder
"Unable to determine image dimensions for {FilePath}: {SkCodecResult}",
path,
result);
return default;
}
}
}
finally
{
try
{
codec?.Dispose();
}
catch (Exception ex)
{
_logger.LogDebug(ex, "Error by closing codec for {FilePath}", safePath);
}
if (isSafePathTemp)
{
try
{
if (File.Exists(safePath))
{
File.Delete(safePath);
}
}
catch (Exception ex)
{
_logger.LogDebug(ex, "Unable to remove temporary file '{TempPath}'", safePath);
}
}
}
}
/// <inheritdoc />
/// <exception cref="ArgumentNullException">The path is null.</exception>