[alsa-devel] Strange div-by-zero in alsa-lib 1.0.20's snd_pcm_mmap_begin()

Lennart Poettering mznyfn at 0pointer.de
Mon Aug 17 16:36:15 CEST 2009

On Mon, 17.08.09 08:49, Takashi Iwai (tiwai at suse.de) wrote:

> At Sun, 16 Aug 2009 18:24:35 -0400,
> Daniel Chen wrote:
> > 
> > Hi,
> > 
> > In https://bugs.launchpad.net/ubuntu/+source/alsa-lib/+bug/412677
> > we're debugging an issue where snd_pcm_mmap_begin(), at line 6409 with
> > 
> > *offset = *pcm->appl.ptr % pcm->buffer_size;
> > 
> > appears to have pcm->buffer_size == 0. What's the correct approach in
> > handling this corner case?
> We could add a sanity check in the function, of course.
> But relying on it doesn't sound nice.
> At least, the caller should be surely at the certain state that the
> buffer has been set up, i.e. checking whether snd_pcm_state() returns
> SETUP or better condition.

Hmm, this bug is triggered in PA apparently. PA doesn't call
snd_pcm_mmap_begin() before the setup finished completely. Not sure
what's going on here, but this smells as if pcm->buffer_size is not
properly initialized.

Daniel, does this happen right-away on PA startup? Or does it
happen sometime while playing?

Could you get us the output of the PA startup phase when running
"pulsaudio -vvvv"? This should show us to which value the buffer_size
is initialized in the snd_pcm_t.


Lennart Poettering                        Red Hat, Inc.
lennart [at] poettering [dot] net
http://0pointer.net/lennart/           GnuPG 0x1A015CC4

More information about the Alsa-devel mailing list