From dbe6d7f86902dbbe2ff276b7a6524c084893772f Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Wed, 19 Mar 2014 10:52:24 +0100 Subject: route: Fix invalid pointer access An uninitialized chmap pointer value is assigned in _snd_pcm_route_open(). Add NULL initializations appropriately, and also avoid the possible invalid access of NULL pcmp pointer. Signed-off-by: Takashi Iwai --- src/pcm/pcm_route.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/pcm/pcm_route.c b/src/pcm/pcm_route.c index a9097caa..599fc3eb 100644 --- a/src/pcm/pcm_route.c +++ b/src/pcm/pcm_route.c @@ -1361,7 +1361,7 @@ int _snd_pcm_route_open(snd_pcm_t **pcmp, const char *name, int err; snd_pcm_t *spcm; snd_config_t *slave = NULL, *sconf; - snd_pcm_chmap_t *tt_chmap, *chmap; + snd_pcm_chmap_t *tt_chmap = NULL, *chmap = NULL; snd_pcm_format_t sformat = SND_PCM_FORMAT_UNKNOWN; int schannels = -1; snd_config_t *tt = NULL; @@ -1460,8 +1460,9 @@ int _snd_pcm_route_open(snd_pcm_t **pcmp, const char *name, if (err < 0) { free(chmap); snd_pcm_close(spcm); + } else { + ((snd_pcm_route_t*) (*pcmp)->private_data)->chmap = chmap; } - ((snd_pcm_route_t*) (*pcmp)->private_data)->chmap = chmap; return err; } -- cgit v1.2.1