[Horus] Memory overflow check added in compress / uncompress methods to BACKUP RAM
This commit is contained in:
@@ -50,14 +50,14 @@ void rambackupWrite()
|
||||
{
|
||||
copyRadioData(&ramBackupUncompressed.radio, &g_eeGeneral);
|
||||
copyModelData(&ramBackupUncompressed.model, &g_model);
|
||||
ramBackup->size = compress(ramBackup->data, (const uint8_t *)&ramBackupUncompressed, sizeof(ramBackupUncompressed));
|
||||
ramBackup->size = compress(ramBackup->data, 4094, (const uint8_t *)&ramBackupUncompressed, sizeof(ramBackupUncompressed));
|
||||
TRACE("RamBackupWrite sdsize=%d backupsize=%d rlcsize=%d", sizeof(ModelData)+sizeof(RadioData), sizeof(Backup::RamBackupUncompressed), ramBackup->size);
|
||||
|
||||
#if 0
|
||||
// TODO move this code to non regression tests
|
||||
Backup::RamBackupUncompressed ramBackupRestored;
|
||||
if (uncompress((uint8_t *)&ramBackupRestored, ramBackup->data, ramBackup->size) != sizeof(ramBackupUncompressed))
|
||||
TRACE("ERROR size");
|
||||
if (uncompress((uint8_t *)&ramBackupRestored, sizeof(ramBackupRestored), ramBackup->data, ramBackup->size) != sizeof(ramBackupUncompressed))
|
||||
TRACE("ERROR uncompress");
|
||||
if (memcmp(&ramBackupUncompressed, &ramBackupRestored, sizeof(ramBackupUncompressed)) != 0)
|
||||
TRACE("ERROR restore");
|
||||
#endif
|
||||
@@ -68,7 +68,7 @@ bool rambackupRestore()
|
||||
if (ramBackup->size == 0)
|
||||
return false;
|
||||
|
||||
if (uncompress((uint8_t *)&ramBackupUncompressed, ramBackup->data, ramBackup->size) != sizeof(ramBackupUncompressed))
|
||||
if (uncompress((uint8_t *)&ramBackupUncompressed, sizeof(ramBackupUncompressed), ramBackup->data, ramBackup->size) != sizeof(ramBackupUncompressed))
|
||||
return false;
|
||||
|
||||
memset(&g_eeGeneral, 0, sizeof(g_eeGeneral));
|
||||
|
||||
Reference in New Issue
Block a user