Fix a null pointer crash when reading PRS1 compliance files with multiple chunks.

This doesn't happen normally, but OSCAR shouldn't crash, even when
encountering cards with corrupted directories.
This commit is contained in:
sawinglogz 2022-02-16 16:45:26 -05:00
parent d38d2c8404
commit a9e9cb118c
2 changed files with 11 additions and 4 deletions

View File

@ -11,6 +11,14 @@
<b>This page in other languages:</b>
<br><a href=http://www.apneaboard.com/wiki/index.php/OSCAR_Release_Notes>http://www.apneaboard.com/wiki/index.php/OSCAR_Release_Notes</a></p>
<p>
<b>Changes and fixes in OSCAR v1.3.5-alpha.2</b>
<br>Portions of OSCAR are © 2019-2022 by
<i>The OSCAR Team</i></p>
<ul>
<li>[fix] File Export Sessions now exports statistics session data properly.</li>
<li>[fix] Fixed a rare crash on import when encountering corrupted Philips Respironics directories.</li>
</ul>
<p>
<b>Changes and fixes in OSCAR v1.3.5-alpha.0</b>
<br>Portions of OSCAR are © 2019-2022 by
<i>The OSCAR Team</i></p>
@ -20,7 +28,6 @@
<li>DreamStation 2 Auto CPAP Advanced (520X110C, 520X150C)</li>
</ul>
</li>
<li>[fix] File Export Sessions now exports statistics session data properly.</li>
<li>[new] Test Mantis integration.</li>
</ul>
<p>

View File

@ -1167,11 +1167,11 @@ void PRS1Loader::ScanFiles(const QStringList & paths, int sessionid_base)
switch (ext) {
case 0:
if (task->compliance) {
if (chunksIdentical(chunk, task->summary)) {
if (chunksIdentical(chunk, task->compliance)) {
// Never seen identical compliance chunks, so keep logging this for now.
qDebug() << chunkComparison(chunk, task->summary);
qDebug() << chunkComparison(chunk, task->compliance);
} else {
qWarning() << chunkComparison(chunk, task->summary);
qWarning() << chunkComparison(chunk, task->compliance);
}
delete chunk;
continue; // (skipping to avoid duplicates)