From 8fd20b6b3b1edc8ae68aeae948a54108aba47330 Mon Sep 17 00:00:00 2001 From: zeromus Date: Sun, 13 Jun 2010 03:16:11 +0000 Subject: [PATCH] fix use of uninitialized memory in compactflash leading to unpredictable failures --- desmume/src/addons/compactFlash.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/desmume/src/addons/compactFlash.cpp b/desmume/src/addons/compactFlash.cpp index 1edb40132..dd8d8d681 100644 --- a/desmume/src/addons/compactFlash.cpp +++ b/desmume/src/addons/compactFlash.cpp @@ -271,7 +271,7 @@ static void list_files(const char *filepath) { fname = (strlen(entry.cAlternateFileName)>0) ? entry.cAlternateFileName : entry.cFileName; add_file(fname, &entry, fileLevel); - CFLASHLOG("cflash added %s\n",fname); + printf("cflash added %s\n",fname); if (numFiles==MAXFILES-1) break; @@ -309,6 +309,7 @@ static BOOL cflash_build_fat() maxLevel = -1; files = (DIR_ENT *) malloc(MAXFILES*sizeof(DIR_ENT)); + memset(files,0,MAXFILES*sizeof(DIR_ENT)); if (files == NULL) return FALSE; fileLink = (FILE_INFO *) malloc(MAXFILES*sizeof(FILE_INFO)); if (fileLink == NULL) @@ -738,7 +739,7 @@ static unsigned int cflash_read(unsigned int address) cluster2 = (((currLBA/512) - filesysData) / SECPERCLUS) + 2; // Reading from the MBR - if (currLBA < 512) + if (currLBA < 512 && currLBA >= 0) { p = (unsigned char*)&MBR; ret_value = T1ReadWord(p, currLBA);