Detailed changes v1.2.5 v1.2.5.1
Detailed changelog between 1.2.5 and 1.2.5.1 releases
Changelog between 1.2.5 and 1.2.5.1 releases
alsa-lib
Core
- Release v1.2.5.1
- Fix EXPORT_SYMBOL attribute for clang
Clang doesn't have the externally_visible attribute.
src/pcm/pcm.c:1503:1: error: unknown attribute 'externally_visible' ignored [-Werror,-Wunknown-attributes]
#define EXPORT_SYMBOL __attribute__((visibility("default"),externally_visible)) ^
- configure: check if eaccess() is available
To fix the build error on Android:
src/ucm/parser.c:2521:7: error: implicit declaration of function 'eaccess' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
if (eaccess(filename, R_OK))
^
src/ucm/parser.c:2521:7: note: did you mean 'access'?
Control API
- control: remap - fix an infinite recursive call in the async callback
The function snd_ctl_remap_async will call itself infinitely. Looks like
a typo.
- control: remap - fix uninitialized value in parse_map_vindex()
PCM API
- pcm: direct - remove dead code
- pcm: softvol - fix early exit in add_tlv_info()
- pcm: remove extra NULL checks in snd_pcm_dshare_open()
- pcm: remove extra NULL checks in snd_pcm_dsnoop_open()
- pcm: remove extra NULL checks in snd_pcm_dmix_open()
- pcm: direct - fix pcmp error path in _snd_pcm_direct_new()
Timer API
- timer: remove dead code in _snd_timer_hw_open()
Use Case Manager API
- configure: check if eaccess() is available
To fix the build error on Android:
src/ucm/parser.c:2521:7: error: implicit declaration of function 'eaccess' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
if (eaccess(filename, R_OK))
^
src/ucm/parser.c:2521:7: note: did you mean 'access'?
- ucm: include sys/wait.h to fix build on Android
src/ucm/main.c:788:8: error: implicit declaration of function 'WIFSIGNALED' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
if (WIFSIGNALED(err)) {
^
src/ucm/main.c:790:10: error: implicit declaration of function 'WIFEXITED' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
} if (WIFEXITED(err)) {
^
src/ucm/main.c:791:34: error: implicit declaration of function 'WEXITSTATUS' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
if (ignore_error == false && WEXITSTATUS(err) != 0) {
- ucm_exec.c: Include limits.h explicitly to fix build on musl
Fixes:
| ../../../alsa-lib-1.2.5/src/ucm/ucm_exec.c: In function 'find_exec':
| ../../../alsa-lib-1.2.5/src/ucm/ucm_exec.c:43:18: error: 'PATH_MAX' undeclared (first use in this function)
| 43 | char bin[PATH_MAX];
| | ^~~~~~~~
| ../../../alsa-lib-1.2.5/src/ucm/ucm_exec.c:43:18: note: each undeclared identifier is reported only once for each function it appears in
| ../../../alsa-lib-1.2.5/src/ucm/ucm_exec.c: In function 'uc_mgr_exec':
| ../../../alsa-lib-1.2.5/src/ucm/ucm_exec.c:177:18: error: 'PATH_MAX' undeclared (first use in this function)
| 177 | char bin[PATH_MAX];
| | ^~~~~~~~
- ucm: compound_merge() - fix use after free (and logic)
- ucm: fix possible memory leak in parse_verb_file()
- ucm: fix out-of-array access in rval_device_lookup_init()
- ucm: check error value in parse_lookup_query()
- ucm: fix possible NULL pointer dereference in uc_mgr_exec()
- ucm: find_exec() - fix memory leak (dir)
- ucm: fix if_eval_path() - access NULL pointer
- ucm: fix use after free in if_eval_regex_match()
- ucm: fix error path in execute_cfgsave()
- ucm: fix _alibpref string (add '.' delimiter to the end)
- ucm: add _alibpref to get the private device prefix
It may be useful to get the device prefix for the local configuration.
Link: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1251
Configuration
- conf: snd_config_get_card() remove unused assignment
- conf: remove dead code in snd_config_get_card()
- conf: fix load_for_all_cards()
The 63f7745b commit is loading the driver specific configuration
multiple times which ends with the array merges (see the bug).
Introduce the loaded compound which traces the already loaded
driver configurations and skip the multiple load requests.
alsa-utils
Core
- Release v1.2.5.1
ALSA Control (alsactl)
- utils.c: Include limits.h explicitly to fix build on musl
Fixes:
| ../../alsa-utils-1.2.5/alsactl/utils.c: In function 'snd_card_clean_cfgdir':
| ../../alsa-utils-1.2.5/alsactl/utils.c:309:19: error: 'PATH_MAX' undeclared (first use in this function)
| 309 | char path[PATH_MAX];
| | ^~~~~~~~
| ../../alsa-utils-1.2.5/alsactl/utils.c:309:19: note: each undeclared identifier is reported only once for each function it appears in
- alsactl: load_state: Only delete config if one was loaded
If load_configuration fails with open_failed == true, load_state will
jump to the out label without config being initialized and pass this
uninitialized config value to snd_config_delete. This commit fixes this
issue by initializing config with NULL and checking if it is non-null
before invoking snd_config_delete.
BugLink: https://github.com/alsa-project/alsa-utils/issues/93
- alsactl: load_state() - initialize config variable for the open_failed case
- alsactl: fix lock_fd unlock in load_configuration() - error path
- alsactl: state - fix ‘item’ may be used uninitialized gcc warning
- alsactl: check for error values from snd_config_get...()
- alsactl: init() - return error value from snd_card_iterator_sinit() call
- alsactl: return error value in dump_config_tree()
- alsactl: fix the nested iteration
There may be nested iterations for hw: card names.
Handle this card name in snd_card_iterator_sinit().
BugLink: https://github.com/alsa-project/alsa-lib/issues/142
Audio Transfer utility
- axfer: fix wrong calloc() item size in allocate_containers()
alsatplg (topology)
- topology: fix few coverity detected defects
- topology: fix potential null pointer from strchr
This patch adds check to the return pointer from strchr,
because it may be null and cause segment fault, if component
is not properly constructed.
aplay/arecord
- arecord: Inform users when 8-bit sampling is used on tty
When we reverted 0c5948e ("aplay: try to use 16-bit format to
increase capture quality"), we should also handle the original
problem somehow. This code shows a warning with a hint to
the right parameter.
- Revert "aplay: try to use 16-bit format to increase capture quality"
This reverts commit 0c5948e98a6a8535c89b7bcab13017d7732181c6.
Link: https://github.com/alsa-project/alsa-utils/issues/96
aseqnet
- added an option to aseqnet to optionally set the midi process name
This option allows to run multiple instances of aseqnet without having
to double check the assigned port number, since each one can get spawned
with a unique name.
alsa-ucm-conf
Configuration
- tegra: Add UCM for Nvidia Tegra HDMI Audio
- HDA-Intel: the lookups are supported from syntax 4
- tegra: shuffle ASUS Google Nexus 7 files
BugLink: https://github.com/alsa-project/alsa-ucm-conf/pull/94
- tegra: shuffle Acer Iconia Tab A500 files
BugLink: https://github.com/alsa-project/alsa-ucm-conf/pull/94