From ef0808c11807a25ba5834fb3fce74c27b1ea09a3 Mon Sep 17 00:00:00 2001 From: Minecrell Date: Thu, 23 Apr 2020 14:51:57 +0200 Subject: tinyalsa: include for ssize_t ssize_t is defined in , see https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_types.h.html Add an include for it to avoid a compile error when building with musl: ../include/tinyalsa/plugin.h:184:5: error: expected specifier-qualifier-list before 'ssize_t' 184 | ssize_t (*read_event) (struct mixer_plugin *plugin, | ^~~~~~~ --- include/tinyalsa/plugin.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/tinyalsa/plugin.h b/include/tinyalsa/plugin.h index fed50be..91d862a 100644 --- a/include/tinyalsa/plugin.h +++ b/include/tinyalsa/plugin.h @@ -32,6 +32,7 @@ #include #include +#include #include -- cgit v1.2.3 From 3f469bfc2c2b891d13a5236baa9b5ef1028f2389 Mon Sep 17 00:00:00 2001 From: Minecrell Date: Thu, 23 Apr 2020 18:15:57 +0200 Subject: tinyalsa: use strncpy instead of memcpy to copy string constant memcpy() is arguably wrong when copying these string constants. The string constants will usually just be as long as necessary, so we might copy some random memory behind it and eventually crash. Use strncpy() instead to avoid copying characters after the null terminator. For some reason the strings in snd_ctl_card_info use unsigned chars, so we need a cast to char* to make it compile unfortunately... This fixes the following compile error on ppc64le: In function 'mixer_plug_get_card_info', inlined from 'mixer_plug_ioctl' at mixer_plugin.c:371:15: mixer_plugin.c:333:5: error: 'memcpy' forming offset [9, 16] is out of the bounds [0, 8] [-Werror=array-bounds] 333 | memcpy(card_info->id, "card_id", sizeof(card_info->id)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Not sure why that warning does not exist on other architectures. --- src/mixer_plugin.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/mixer_plugin.c b/src/mixer_plugin.c index 3437171..5bea42c 100644 --- a/src/mixer_plugin.c +++ b/src/mixer_plugin.c @@ -330,11 +330,11 @@ static int mixer_plug_get_card_info(struct mixer_plug_data *plug_data, /*TODO: Fill card_info here from snd-card-def */ memset(card_info, 0, sizeof(*card_info)); card_info->card = plug_data->card; - memcpy(card_info->id, "card_id", sizeof(card_info->id)); - memcpy(card_info->driver, "mymixer-so-name", sizeof(card_info->driver)); - memcpy(card_info->name, "card-name", sizeof(card_info->name)); - memcpy(card_info->longname, "card-name", sizeof(card_info->longname)); - memcpy(card_info->mixername, "mixer-name", sizeof(card_info->mixername)); + strncpy((char*)card_info->id, "card_id", sizeof(card_info->id)); + strncpy((char*)card_info->driver, "mymixer-so-name", sizeof(card_info->driver)); + strncpy((char*)card_info->name, "card-name", sizeof(card_info->name)); + strncpy((char*)card_info->longname, "card-name", sizeof(card_info->longname)); + strncpy((char*)card_info->mixername, "mixer-name", sizeof(card_info->mixername)); return 0; } -- cgit v1.2.3 From 5c86afcb0233d51d09325146a9f3000631824748 Mon Sep 17 00:00:00 2001 From: Minecrell Date: Fri, 24 Apr 2020 19:13:20 +0200 Subject: tinyalsa: mixer_plugin: remove dummy strings for sound card There does not really seem to be an usage for these dummy string, so let's remove them. --- src/mixer_plugin.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/mixer_plugin.c b/src/mixer_plugin.c index 5bea42c..389003e 100644 --- a/src/mixer_plugin.c +++ b/src/mixer_plugin.c @@ -330,11 +330,6 @@ static int mixer_plug_get_card_info(struct mixer_plug_data *plug_data, /*TODO: Fill card_info here from snd-card-def */ memset(card_info, 0, sizeof(*card_info)); card_info->card = plug_data->card; - strncpy((char*)card_info->id, "card_id", sizeof(card_info->id)); - strncpy((char*)card_info->driver, "mymixer-so-name", sizeof(card_info->driver)); - strncpy((char*)card_info->name, "card-name", sizeof(card_info->name)); - strncpy((char*)card_info->longname, "card-name", sizeof(card_info->longname)); - strncpy((char*)card_info->mixername, "mixer-name", sizeof(card_info->mixername)); return 0; } -- cgit v1.2.3