From: Pedro Lopez-Cabanillas Date: Thu, 22 Apr 2010 13:42:20 +0000 (+0200) Subject: seq: Fix for snd_seq_parse_address() X-Git-Tag: v1.0.24~42 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=19892334499e;p=alsa-lib.git seq: Fix for snd_seq_parse_address() snd_seq_parse_address() uses strncmp() to compare the client name in the string argument with the existing clients, until it finds one name matching the same leading characters. This may produce wrong results when there are two sequencer clients with similar names. Example: "KMidimon" : "Kmid" Signed-off-by: Pedro Lopez-Cabanillas Signed-off-by: Jaroslav Kysela --- diff --git a/src/seq/seqmid.c b/src/seq/seqmid.c index 86a49709..894c3a26 100644 --- a/src/seq/seqmid.c +++ b/src/seq/seqmid.c @@ -414,7 +414,8 @@ int snd_seq_parse_address(snd_seq_t *seq, snd_seq_addr_t *addr, const char *arg) return -EINVAL; cinfo.client = -1; while (snd_seq_query_next_client(seq, &cinfo) >= 0) { - if (! strncmp(arg, cinfo.name, len)) { + if ((strlen(cinfo.name) == len) && + ! strncmp(arg, cinfo.name, len)) { addr->client = cinfo.client; return 0; }