From 1d847eb96ce0fe657e2758813ff4cec1c36247f4 Mon Sep 17 00:00:00 2001 From: Christopher Snowhill Date: Fri, 6 Jun 2025 01:26:06 -0700 Subject: [PATCH] Bug Fix: Really old legacy code error crash fix This legacy playlist filename handler was falling through on newly installed and run setups, where none of the files would exist, so the last one would return a nil NSURL and attempt to add it to the playlist. Fix this to check for the existence of the file before attempting to open it. It shouldn't really exist anyway, unless someone really started with a really old version somehow, and migrated it to the sandbox folder proper. Signed-off-by: Christopher Snowhill --- Application/AppController.m | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Application/AppController.m b/Application/AppController.m index 1fdf9acf8..85dc1c323 100644 --- a/Application/AppController.m +++ b/Application/AppController.m @@ -210,8 +210,15 @@ static BOOL consentLastEnabled = NO; [playlistLoader addDatabase]; } else if([[NSFileManager defaultManager] fileExistsAtPath:[basePath stringByAppendingPathComponent:newFilename]]) { [playlistLoader addURL:[NSURL fileURLWithPath:[basePath stringByAppendingPathComponent:newFilename]]]; - } else { + } else if([[NSFileManager defaultManager] fileExistsAtPath:[basePath stringByAppendingPathComponent:oldFilename]]){ + /* Without the above check, it appears the code was retrieving a nil NSURL from the nonexistent path + * Then adding it to the playlist and crashing further down the line + * Nobody on a new setup should be seeing this open anything, so it should fall through to the + * notice below. + */ [playlistLoader addURL:[NSURL fileURLWithPath:[basePath stringByAppendingPathComponent:oldFilename]]]; + } else { + ALog(@"No playlist found, leaving it empty."); } }