From 19892334499ed21ed4dc30084ad8700253f9cb2f Mon Sep 17 00:00:00 2001 From: Pedro Lopez-Cabanillas Date: Thu, 22 Apr 2010 15:42:20 +0200 Subject: [PATCH 03/21] 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 --- src/seq/seqmid.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/src/seq/seqmid.c b/src/seq/seqmid.c index 86a4970..894c3a2 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; } -- 1.7.2.1