Crashes in OSSs audio.c on FreeBSD

Eric Pouech eric.pouech at wanadoo.fr
Mon Feb 24 14:13:26 CST 2003


> BSD is probably doing the same thing, but nevertheless, -STABLE (i.e.
> FreeBSD 4.x) has a bug in the pcm-driver (I think) which makes mapping
> the buffer write-only impossible (at least for me).
> 
> FreeBSD 5.x does not have that problem and sadly the pcm-code between
> 4.x and 5.x is virtually the same.
I think I remember BSD folks speaking of mmap changes... can someone 
confirm ?

>>>+#ifndef __FreeBSD__
>>>	/* for some reason, es1371 and sblive! sometimes have junk in here.
>>>	 * clear it, or we get junk noise */
>>>	/* some libc implementations are buggy: their memset reads from the 
>>>	buffer...
>>>@@ -1826,6 +1832,9 @@
>>>	    /* in all cases, fill the remaining bytes */
>>>	    while (len-- != 0) *p1++ = 0;
>>>	}
>>>+#else
>>>+        memset(wwo->mapping,0, wwo->maplen);
>>>+#endif
>>
>>you shouldn't need this chunk
> 
> 
> I know, this has nothing to do with mmap()ing the buffer, but it looks
> like FreeBSDs libc doesn't have the bug with memset(), so I just used
> that instead.

sure, not all Linux distros have this bug, but it creates a new code 
path, which is bad for maintenance... so leaving the code as it is, is a 
  better option

A+

-- 
Eric Pouech




More information about the wine-devel mailing list