while (card >= 0) {
char name[32];
+ /* most probably, we do not need to cache all CTL devices here */
+ uc_mgr_free_ctl_list(mgr);
+
sprintf(name, "hw:%d", card);
err = get_card_info(mgr, name, &ctl, info);
}
}
+ uc_mgr_free_ctl_list(mgr);
+
return -1;
}
__parse:
err = parse_master_file(uc_mgr, cfg);
snd_config_delete(cfg);
- if (err < 0)
+ if (err < 0) {
+ uc_mgr_free_ctl_list(uc_mgr);
uc_mgr_free_verb(uc_mgr);
+ }
return err;