From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wg0-f42.google.com (mail-wg0-f42.google.com [74.125.82.42]) by dpdk.org (Postfix) with ESMTP id 66AAA678E for ; Tue, 28 Jan 2014 17:05:59 +0100 (CET) Received: by mail-wg0-f42.google.com with SMTP id l18so6297658wgh.3 for ; Tue, 28 Jan 2014 08:07:17 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=YaI+MsqBu0Z/i1zNale7cE6Oa4OtbgXQ6y56QI3e/2Y=; b=CeEn4aD432SZAwknDuhRWTTS37+Ev97Zse8rOSeR5kDos3Br4FsxAsuFfXFSRoq8SN RgjhwRt010V0tCPRc8rpQFyBCzZbZYj7HAVIRKCutpIvvWiAcr9YFvG2pix3C2o4WnhF WGnaE2lZD/OVy8Y5v3XPO0PkqjX1SqqOKVEY+CkcwDaOVHQgPjPmCN40ci+PU573Cj6U 6ZALN6mGe9V2Rp/KeQbaNYzYeagitjKhB0Ct88Y1dpVWxVCPFkEDBuTyd4DNWP+s/kld qOqGh6qQJWmIzjqDYrGbPwGTcBYs3aGrRe7u/lDaBc6Ga/ExOLnH10mDL7NWeQEdWlho J6xw== X-Gm-Message-State: ALoCoQlu/iMZQLCBvbdr14itdv7xrPkEmhY1DAmZgccHCKZMx+ZjNIPf/dyUnJzv5I28WxPddmG5 X-Received: by 10.194.63.228 with SMTP id j4mr1647035wjs.34.1390925237929; Tue, 28 Jan 2014 08:07:17 -0800 (PST) Received: from glumotte.dev.6wind.com (6wind.net2.nerim.net. [213.41.180.237]) by mx.google.com with ESMTPSA id d6sm36407821wic.9.2014.01.28.08.07.16 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 28 Jan 2014 08:07:16 -0800 (PST) From: Olivier Matz To: dev@dpdk.org Date: Tue, 28 Jan 2014 17:06:40 +0100 Message-Id: <1390925204-10800-8-git-send-email-olivier.matz@6wind.com> X-Mailer: git-send-email 1.8.4.rc3 In-Reply-To: <1390925204-10800-1-git-send-email-olivier.matz@6wind.com> References: <1390925204-10800-1-git-send-email-olivier.matz@6wind.com> Subject: [dpdk-dev] [PATCH 07/11] kvargs: be strict when matching a key X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Jan 2014 16:05:59 -0000 When we match a key in is_valid_key() and rte_kvargs_process(), do a strict comparison (strcmp()) instead of using strstr(s1, s2) which tries a find s1 in s2. This old behavior could lead to unexpected match, for instance "cola" match "chocolate". Surprisingly, no patch was needed on rte_kvargs_count() as it already used strcmp(). Signed-off-by: Olivier Matz --- lib/librte_kvargs/rte_kvargs.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/librte_kvargs/rte_kvargs.c b/lib/librte_kvargs/rte_kvargs.c index 6aaa316..73034fc 100644 --- a/lib/librte_kvargs/rte_kvargs.c +++ b/lib/librte_kvargs/rte_kvargs.c @@ -94,9 +94,10 @@ is_valid_key(const char *valid[], const char *key_match) { const char **valid_ptr; - for (valid_ptr = valid; *valid_ptr != NULL; valid_ptr++) - if (strstr(key_match, *valid_ptr) != NULL) + for (valid_ptr = valid; *valid_ptr != NULL; valid_ptr++) { + if (strcmp(key_match, *valid_ptr) == 0) return 1; + } return 0; } @@ -159,7 +160,7 @@ rte_kvargs_process(const struct rte_kvargs *kvlist, for (i = 0; i < kvlist->count; i++) { pair = &kvlist->pairs[i]; - if (strstr(pair->key, key_match) != NULL) { + if (strcmp(pair->key, key_match) == 0) { if ((*handler)(pair->value, opaque_arg) < 0) return -1; } -- 1.8.4.rc3