diff options
author | Hsin-Yu Chao <hychao@google.com> | 2018-09-18 17:22:10 +0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-09-19 08:59:39 -0700 |
commit | 81fdac505005f2d88d9d8b0d3bfb8b896dc52bf9 (patch) | |
tree | 20bb0a5956b513f4f73ea6ea8e4842d8ab10d523 | |
parent | f53d9eb4eebc4300610682f8f5728593ab103e2a (diff) | |
download | adhd-81fdac505005f2d88d9d8b0d3bfb8b896dc52bf9.tar.gz |
CRAS: alsa_ucm - Free echo ref dev name
Echo ref dev name returned from UCM manager should
be freed by caller. Fix it in a few places.
BUG=chromium:884893
TEST=USE=asan FEATURES=test emerge-nocturne adhd
Change-Id: I6f905a501d62c9019f460fba56232dca61016a34
Reviewed-on: https://chromium-review.googlesource.com/1229795
Commit-Ready: Hsinyu Chao <hychao@chromium.org>
Tested-by: Hsinyu Chao <hychao@chromium.org>
Reviewed-by: Cheng-Yi Chiang <cychiang@chromium.org>
Reviewed-by: Dylan Reid <dgreid@chromium.org>
-rw-r--r-- | cras/src/server/cras_alsa_card.c | 1 | ||||
-rw-r--r-- | cras/src/server/cras_alsa_ucm.h | 3 | ||||
-rw-r--r-- | cras/src/tests/alsa_card_unittest.cc | 2 | ||||
-rw-r--r-- | cras/src/tests/alsa_ucm_unittest.cc | 1 |
4 files changed, 5 insertions, 2 deletions
diff --git a/cras/src/server/cras_alsa_card.c b/cras/src/server/cras_alsa_card.c index 2b19d9c8..7f7a6204 100644 --- a/cras/src/server/cras_alsa_card.c +++ b/cras/src/server/cras_alsa_card.c @@ -443,6 +443,7 @@ static void configure_echo_reference_dev(struct cras_alsa_card *alsa_card) syslog(LOG_ERR, "Echo ref dev %s doesn't exist on card %s", echo_ref_name, alsa_card->name); + free((void *)echo_ref_name); } } diff --git a/cras/src/server/cras_alsa_ucm.h b/cras/src/server/cras_alsa_ucm.h index ede3127e..38377a05 100644 --- a/cras/src/server/cras_alsa_ucm.h +++ b/cras/src/server/cras_alsa_ucm.h @@ -262,7 +262,8 @@ const char *ucm_get_device_name_for_dev( * dev - The device to check echo reference for. * Returns: * String containing the node name of the echo reference to this - * dev. NULL if echo reference doesn't exist. + * dev, caller is responsible to free it later. NULL if echo reference + * doesn't exist. */ const char *ucm_get_echo_reference_dev_name_for_dev( struct cras_use_case_mgr *mgr, const char *dev); diff --git a/cras/src/tests/alsa_card_unittest.cc b/cras/src/tests/alsa_card_unittest.cc index e3a6407d..29c315b8 100644 --- a/cras/src/tests/alsa_card_unittest.cc +++ b/cras/src/tests/alsa_card_unittest.cc @@ -841,7 +841,7 @@ TEST(AlsaCard, GG) { snprintf(nodes[2].name, CRAS_NODE_NAME_BUFFER_SIZE, "dev3"); snprintf(nodes[3].name, CRAS_NODE_NAME_BUFFER_SIZE, "echo ref"); - ucm_get_echo_reference_dev_name_for_dev_return_value[0] = echo_ref; + ucm_get_echo_reference_dev_name_for_dev_return_value[0] = strdup(echo_ref); c = cras_alsa_card_create(&card_info, device_config_dir, fake_blacklist, NULL); diff --git a/cras/src/tests/alsa_ucm_unittest.cc b/cras/src/tests/alsa_ucm_unittest.cc index 15a661a3..3199573c 100644 --- a/cras/src/tests/alsa_ucm_unittest.cc +++ b/cras/src/tests/alsa_ucm_unittest.cc @@ -473,6 +473,7 @@ TEST(AlsaUcm, GetEchoReferenceDev) { ASSERT_EQ(1, snd_use_case_get_called); EXPECT_EQ(snd_use_case_get_id[0], id_1); EXPECT_EQ(0, strcmp(echo_ref_dev, value_1.c_str())); + free((void *)echo_ref_dev); } TEST(AlsaUcm, GetHotwordModels) { |