From 527da3c3bb8e367c731b7fe437f1283b2a549912 Mon Sep 17 00:00:00 2001 From: "SND\\MaddTheSane_cp" Date: Sat, 7 Feb 2015 22:17:23 +0000 Subject: [PATCH] OS X: Fix an off-by-one error that was causing the QuickLook and Spotlight plug-ins to crash. The bug was also present in the app itself, but it didn't crash. git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@93874 e17a0e51-4ae3-4d35-97c3-1a29b211df97 --- macosx/Pcsxr-QL/PSXMemEnumerator.m | 4 ++-- macosx/Psx-Memcard/GetMetadataForFile.m | 4 ++-- macosx/Source/PcsxrMemCardArray.m | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/macosx/Pcsxr-QL/PSXMemEnumerator.m b/macosx/Pcsxr-QL/PSXMemEnumerator.m index b5545da2..4cba0ef7 100644 --- a/macosx/Pcsxr-QL/PSXMemEnumerator.m +++ b/macosx/Pcsxr-QL/PSXMemEnumerator.m @@ -156,7 +156,7 @@ NSArray *CreateArrayByEnumeratingMemoryCardAtURL(NSURL *location) i++; continue; } - do { + while (i + x < MAX_MEMCARD_BLOCKS) { McdBlock tmpBlock; GetSoloBlockInfo((unsigned char *)memPtr, i + x + 1, &tmpBlock); if ((tmpBlock.Flags & 0x3) == 0x3) { @@ -167,7 +167,7 @@ NSArray *CreateArrayByEnumeratingMemoryCardAtURL(NSURL *location) } else { break; } - } while (i + x - 1 < MAX_MEMCARD_BLOCKS); + }; PcsxrMemoryObject *obj = [[PcsxrMemoryObject alloc] initWithMcdBlock:&memBlock startingIndex:i size:x]; i += x; if (MemBlockFlag(memBlock.Flags) == memFlagDeleted) { diff --git a/macosx/Psx-Memcard/GetMetadataForFile.m b/macosx/Psx-Memcard/GetMetadataForFile.m index 41e0e224..78adda93 100644 --- a/macosx/Psx-Memcard/GetMetadataForFile.m +++ b/macosx/Psx-Memcard/GetMetadataForFile.m @@ -172,7 +172,7 @@ Boolean GetMetadataForFile(void *thisInterface, CFMutableDictionaryRef attribute i++; continue; } - do { + while (i + x < MAX_MEMCARD_BLOCKS) { McdBlock tmpBlock; GetSoloBlockInfo((unsigned char *)fileCData, i + x + 1, &tmpBlock); if ((tmpBlock.Flags & 0x3) == 0x3) { @@ -183,7 +183,7 @@ Boolean GetMetadataForFile(void *thisInterface, CFMutableDictionaryRef attribute } else { break; } - } while (i + x - 1 < MAX_MEMCARD_BLOCKS); + }; // Ignore deleted blocks i += x; if (MemBlockFlag(memBlock.Flags) == memFlagDeleted) { diff --git a/macosx/Source/PcsxrMemCardArray.m b/macosx/Source/PcsxrMemCardArray.m index ea739ffb..b7429f20 100644 --- a/macosx/Source/PcsxrMemCardArray.m +++ b/macosx/Source/PcsxrMemCardArray.m @@ -108,7 +108,7 @@ static inline void ClearMemcardData(char *to, int dsti, char *str) i++; continue; } - do { + while (i + x < MAX_MEMCARD_BLOCKS) { McdBlock tmpBlock; GetMcdBlockInfo(carNum, i + x + 1, &tmpBlock); if ((tmpBlock.Flags & 0x3) == 0x3) { @@ -119,7 +119,7 @@ static inline void ClearMemcardData(char *to, int dsti, char *str) } else { break; } - } while (i + x - 1 < MAX_MEMCARD_BLOCKS); + }; @autoreleasepool { PcsxrMemoryObject *obj = [[PcsxrMemoryObject alloc] initWithMcdBlock:&memBlock startingIndex:i size:x]; [tmpMemArray addObject:obj];