Commit b250bcdf authored by David Reid's avatar David Reid

ALSA: Fix a potential infinite loop in MMAP mode.

parent 4f85fb86
...@@ -9746,7 +9746,6 @@ mal_bool32 mal_device_write__alsa(mal_device* pDevice) ...@@ -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) ...@@ -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) ...@@ -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.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment