29 Jan
2019
29 Jan
'19
2:45 p.m.
On Thu, 24 Jan 2019 15:42:55 +0100, twischer@de.adit-jv.com wrote:
@@ -53,6 +61,32 @@ typedef struct { bool xrun_detected; } snd_pcm_jack_t;
+/* adds one element to the head of the list */ +static int snd_pcm_jack_port_list_add(snd_pcm_jack_t *jack,
const unsigned int channel,
const char * const name)
+{
- const size_t name_size = strlen(name) + 1;
- const size_t elem_size = sizeof(snd_pcm_jack_port_list_t) + name_size;
- snd_pcm_jack_port_list_t *elem = NULL;
- if (name == NULL)
return -EINVAL;
name is already dereferenced in strlen(), so it's too late here. i.e. name_size has to be evaluated after this NULL check, if any. Or just drop this NULL check. It's an internal function and the name is never NULL, practically seen.
- elem = calloc(1, elem_size);
- if (elem == NULL)
return -ENOMEM;
- strncpy(elem->name, name, name_size);
- elem->name[name_size-1] = 0x00;
name_size is the exact size of string + 1, so this is equivalent with strcpy().
thanks,
Takashi