winealsa.drv: Add mmdevapi driver.

Andrew Eikum aeikum at
Tue Apr 26 13:50:19 CDT 2011

On 04/26/2011 11:26 AM, Andrew Eikum wrote:
>>  dump_fmt
>>  +    TRACE("cbSize: %u\n", fmt->cbSize);
>>  Old Wine code contains several comments about never ever reading cbSize
>>  in the WAVE_FORMAT_PCM case because it's a potential read past the structure
>>  and may cause a segmentation fault.  Is it not a valid concern anymore?
>>  WAVEFORMATEX contains the cbSize slot.  However if the winmm:wave* functions
>>  pass through their argument to mmdevapi, it may well end up to be the smaller
> You're right, and I wasn't careful enough about this. WinMM has a test
> for it, and I'll add a similar one to mmdevapi.

Hm, to my surprise it seems MS no longer does this check as of Win7.

When cbSize is out of bounds, it returns a strange error on Vista 

When cbSize is in bounds, everything works fine:

So, I think I'll leave it crashing. We'll just have to be careful in 
WinMM to pass a valid structure through.

More information about the wine-devel mailing list