[Bug 26131] dsound/duplex tests show an uninitialized variable under valgrind

wine-bugs at winehq.org wine-bugs at winehq.org
Mon Mar 28 02:46:53 CDT 2011


http://bugs.winehq.org/show_bug.cgi?id=26131

Raymond <superquad.vortex2 at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |superquad.vortex2 at gmail.com

--- Comment #1 from Raymond <superquad.vortex2 at gmail.com> 2011-03-28 02:46:51 CDT ---
(In reply to comment #0)
> Conditional jump or move depends on uninitialised value(s)
>     at  snd_pcm_mmap_begin (in /usr/lib/libasound.so.2.0.0)
>     by  CreateMMAP (dscapture.c:513)
>     by  IDsCaptureDriverBufferImpl_SetFormat (dscapture.c:737)
>     by  IDsCaptureDriverImpl_CreateCaptureBuffer (dscapture.c:1039)
>     by  IDirectSoundCaptureBufferImpl_Create (capture.c:935)
>     by  IDirectSoundCaptureImpl_CreateCaptureBuffer (capture.c:1256)
>     by  IDirectSoundFullDuplexImpl_Initialize (duplex.c:592)
>     by  DirectSoundFullDuplexCreate (duplex.c:737)
>     by  IDirectSoundFullDuplex_tests (duplex.c:184)
>     by  func_duplex (duplex.c:239)
>     by  run_test (test.h:556)
>     by  main (test.h:624)
>   Uninitialised value was created by a stack allocation
>     at  CreateMMAP (dscapture.c:460)
> 
> though perhaps that's an alsa bug?

Are your sure ?

since pdbi->mmap is already assigned before calling CreateMMAP()

    This->mmap = mmap;

    snd_pcm_prepare(This->pcm);
    CreateMMAP(This);

The bug is actually mmap_mode 

   mmap_mode = snd_pcm_type(pcm);

    if (mmap_mode == SND_PCM_TYPE_HW)
        TRACE("mmap'd buffer is a direct hardware buffer.\n");
    else if (mmap_mode == SND_PCM_TYPE_DMIX)
        TRACE("mmap'd buffer is an ALSA dmix buffer\n");
    else
        TRACE("mmap'd buffer is an ALSA type %d buffer\n", mmap_mode);


since mmap_mode is not related to access_mmap (e.g. pulse does not support mmap
but the trace still say

"trace:dsalsa:CreateMMAP mmap'd buffer is an ALSA type 28 buffer"

type 28 is SND_PCM_TYPE_IOPLUG ( it can be jack or pulse plugin )


    err = snd_pcm_hw_params_set_access (pcm, hw_params,
SND_PCM_ACCESS_MMAP_INTERLEAVED);
    if (err < 0)
    {
        err = snd_pcm_hw_params_set_access (pcm, hw_params,
SND_PCM_ACCESS_RW_INTERLEAVED);
        if (err < 0) { WARN("Could not set access\n"); goto err; }
        mmap = 0;
    }
    else
        mmap = 1;

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list