--- alsa-lib-1.0.19/src/pcm/pcm_direct.c.bak 2009-01-19 13:17:18.000000000 +0200 +++ alsa-lib-1.0.19/src/pcm/pcm_direct.c 2009-05-04 23:44:51.964200693 +0300 @@ -90,7 +90,7 @@ int snd_pcm_direct_semaphore_create_or_c int snd_pcm_direct_shm_create_or_connect(snd_pcm_direct_t *dmix) { - struct shmid_ds buf; + struct shmid_ds buf = {0}; int tmpid, err; retryget: @@ -145,7 +145,7 @@ retryget: */ static int _snd_pcm_direct_shm_discard(snd_pcm_direct_t *dmix) { - struct shmid_ds buf; + struct shmid_ds buf = {0}; int ret = 0; if (dmix->shmid < 0) @@ -342,7 +342,7 @@ static void server_job(snd_pcm_direct_t break; } if (ret == 0 || (pfds[0].revents & (POLLERR | POLLHUP))) { /* timeout or error? */ - struct shmid_ds buf; + struct shmid_ds buf = {0}; snd_pcm_direct_semaphore_down(dmix, DIRECT_IPC_SEM_CLIENT); if (shmctl(dmix->shmid, IPC_STAT, &buf) < 0) { _snd_pcm_direct_shm_discard(dmix); --- alsa-lib-1.0.19/src/pcm/pcm_dmix.c.bak 2009-01-19 13:17:18.000000000 +0200 +++ alsa-lib-1.0.19/src/pcm/pcm_dmix.c 2009-05-04 23:45:44.345201101 +0300 @@ -66,7 +66,7 @@ static int shm_sum_discard(snd_pcm_direc */ static int shm_sum_create_or_connect(snd_pcm_direct_t *dmix) { - struct shmid_ds buf; + struct shmid_ds buf = {0}; int tmpid, err; size_t size; @@ -108,7 +108,7 @@ retryshm: static int shm_sum_discard(snd_pcm_direct_t *dmix) { - struct shmid_ds buf; + struct shmid_ds buf = {0}; int ret = 0; if (dmix->u.dmix.shmid_sum < 0)