NVR and Intel Flash functions now don't free the file name pointers until after all file I/O is done.
This commit is contained in:
@@ -190,9 +190,6 @@ void *intel_flash_init(uint8_t type)
|
|||||||
|
|
||||||
wcscpy(flash_path, flash_name);
|
wcscpy(flash_path, flash_name);
|
||||||
|
|
||||||
free(flash_name);
|
|
||||||
free(model_name);
|
|
||||||
|
|
||||||
pclog_w(L"Flash path: %s\n", flash_name);
|
pclog_w(L"Flash path: %s\n", flash_name);
|
||||||
|
|
||||||
flash->flash_id = (type & FLASH_IS_BXB) ? 0x95 : 0x94;
|
flash->flash_id = (type & FLASH_IS_BXB) ? 0x95 : 0x94;
|
||||||
@@ -264,6 +261,9 @@ void *intel_flash_init(uint8_t type)
|
|||||||
fclose(f);
|
fclose(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
free(flash_name);
|
||||||
|
free(model_name);
|
||||||
|
|
||||||
return flash;
|
return flash;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
18
src/nvr.c
18
src/nvr.c
@@ -232,9 +232,6 @@ void loadnvr(void)
|
|||||||
nvrmask = model_get_nvrmask(model);
|
nvrmask = model_get_nvrmask(model);
|
||||||
}
|
}
|
||||||
|
|
||||||
free(nvr_name);
|
|
||||||
free(model_name);
|
|
||||||
|
|
||||||
if (!f || (model_get_nvrmask(model) == 0))
|
if (!f || (model_get_nvrmask(model) == 0))
|
||||||
{
|
{
|
||||||
if (f)
|
if (f)
|
||||||
@@ -250,6 +247,9 @@ void loadnvr(void)
|
|||||||
nvrram[RTC_CENTURY] = BCD(19);
|
nvrram[RTC_CENTURY] = BCD(19);
|
||||||
nvrram[RTC_REGB] = RTC_2412;
|
nvrram[RTC_REGB] = RTC_2412;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
free(nvr_name);
|
||||||
|
free(model_name);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
fread(nvrram,128,1,f);
|
fread(nvrram,128,1,f);
|
||||||
@@ -262,6 +262,9 @@ void loadnvr(void)
|
|||||||
nvrram[RTC_REGB] = RTC_2412;
|
nvrram[RTC_REGB] = RTC_2412;
|
||||||
c = 1 << ((nvrram[RTC_REGA] & RTC_RS) - 1);
|
c = 1 << ((nvrram[RTC_REGA] & RTC_RS) - 1);
|
||||||
rtctime += (int)(RTCCONST * c * (1 << TIMER_SHIFT));
|
rtctime += (int)(RTCCONST * c * (1 << TIMER_SHIFT));
|
||||||
|
|
||||||
|
free(nvr_name);
|
||||||
|
free(model_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
void savenvr(void)
|
void savenvr(void)
|
||||||
@@ -283,20 +286,23 @@ void savenvr(void)
|
|||||||
f = nvrfopen(nvr_name, L"wb");
|
f = nvrfopen(nvr_name, L"wb");
|
||||||
}
|
}
|
||||||
|
|
||||||
free(nvr_name);
|
|
||||||
free(model_name);
|
|
||||||
|
|
||||||
if (!f || (model_get_nvrmask(oldmodel) == 0))
|
if (!f || (model_get_nvrmask(oldmodel) == 0))
|
||||||
{
|
{
|
||||||
if (f)
|
if (f)
|
||||||
{
|
{
|
||||||
fclose(f);
|
fclose(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
free(nvr_name);
|
||||||
|
free(model_name);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
fwrite(nvrram,128,1,f);
|
fwrite(nvrram,128,1,f);
|
||||||
fclose(f);
|
fclose(f);
|
||||||
|
|
||||||
|
free(nvr_name);
|
||||||
|
free(model_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
void nvr_init(void)
|
void nvr_init(void)
|
||||||
|
|||||||
Reference in New Issue
Block a user