mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-10-29 05:40:25 -04:00
snd_user_file: fix memory leak
Call wordfree if and only if wordfree returns zero or WRDE_NOSPACE Signed-off-by: Andreas Schwab <schwab@suse.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
ebd6afc915
commit
c7bfcbb255
1 changed files with 3 additions and 2 deletions
|
|
@ -44,19 +44,20 @@ int snd_user_file(const char *file, char **result)
|
|||
err = wordexp(file, &we, WRDE_NOCMD);
|
||||
switch (err) {
|
||||
case WRDE_NOSPACE:
|
||||
wordfree(&we);
|
||||
return -ENOMEM;
|
||||
case 0:
|
||||
if (we.we_wordc == 1)
|
||||
break;
|
||||
wordfree(&we);
|
||||
/* fall thru */
|
||||
default:
|
||||
wordfree(&we);
|
||||
return -EINVAL;
|
||||
}
|
||||
*result = strdup(we.we_wordv[0]);
|
||||
wordfree(&we);
|
||||
if (*result == NULL)
|
||||
return -ENOMEM;
|
||||
wordfree(&we);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue