From 0ff0fe2e68f3abf7b8e4d6bf0c1e9dee4eb68227 Mon Sep 17 00:00:00 2001 From: Bogdan Date: Sat, 17 Jun 2023 02:08:40 +0300 Subject: [PATCH] Prevent NullRef when deleting missing backups --- .../System/Backup/BackupController.cs | 28 +++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/src/Prowlarr.Api.V1/System/Backup/BackupController.cs b/src/Prowlarr.Api.V1/System/Backup/BackupController.cs index bcb236652..927026805 100644 --- a/src/Prowlarr.Api.V1/System/Backup/BackupController.cs +++ b/src/Prowlarr.Api.V1/System/Backup/BackupController.cs @@ -20,7 +20,7 @@ namespace Prowlarr.Api.V1.System.Backup private readonly IAppFolderInfo _appFolderInfo; private readonly IDiskProvider _diskProvider; - private static readonly List ValidExtensions = new List { ".zip", ".db", ".xml" }; + private static readonly List ValidExtensions = new () { ".zip", ".db", ".xml" }; public BackupController(IBackupService backupService, IAppFolderInfo appFolderInfo, @@ -38,22 +38,28 @@ namespace Prowlarr.Api.V1.System.Backup var backups = _backupService.GetBackups(); return backups.Select(b => new BackupResource - { - Id = GetBackupId(b), - Name = b.Name, - Path = $"/backup/{b.Type.ToString().ToLower()}/{b.Name}", - Type = b.Type, - Size = b.Size, - Time = b.Time - }) - .OrderByDescending(b => b.Time) - .ToList(); + { + Id = GetBackupId(b), + Name = b.Name, + Path = $"/backup/{b.Type.ToString().ToLower()}/{b.Name}", + Type = b.Type, + Size = b.Size, + Time = b.Time + }) + .OrderByDescending(b => b.Time) + .ToList(); } [RestDeleteById] public void DeleteBackup(int id) { var backup = GetBackup(id); + + if (backup == null) + { + throw new NotFoundException(); + } + var path = GetBackupPath(backup); if (!_diskProvider.FileExists(path))