ALSA: Fix a potential infinite loop in MMAP mode.

This commit is contained in:
David Reid
2018-07-14 00:21:17 +00:00
parent 4f85fb8692
commit b250bcdf06
+8 -1
View File
@@ -9746,7 +9746,6 @@ mal_bool32 mal_device_write__alsa(mal_device* pDevice)
return MAL_FALSE; return MAL_FALSE;
} }
if (pDevice->alsa.isUsingMMap) { if (pDevice->alsa.isUsingMMap) {
// mmap. // mmap.
mal_bool32 requiresRestart; mal_bool32 requiresRestart;
@@ -9786,7 +9785,11 @@ mal_bool32 mal_device_write__alsa(mal_device* pDevice)
} }
} }
if (framesAvailable >= mappedFrames) {
framesAvailable -= mappedFrames; framesAvailable -= mappedFrames;
} else {
framesAvailable = 0;
}
} }
} else { } else {
// readi/writei. // readi/writei.
@@ -9880,7 +9883,11 @@ mal_bool32 mal_device_read__alsa(mal_device* pDevice)
} }
} }
if (framesAvailable >= mappedFrames) {
framesAvailable -= mappedFrames; framesAvailable -= mappedFrames;
} else {
framesAvailable = 0;
}
} }
} else { } else {
// readi/writei. // readi/writei.