Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp486128yba; Wed, 15 May 2019 05:01:24 -0700 (PDT) X-Google-Smtp-Source: APXvYqxlK376OC+dU/3mF5a1PvAVyztr8YoNUyaSSubICEjoJK9GC4EUf69kIKaJPYImc++t5EO+ X-Received: by 2002:a17:902:7610:: with SMTP id k16mr8082785pll.177.1557921684081; Wed, 15 May 2019 05:01:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557921684; cv=none; d=google.com; s=arc-20160816; b=EPeq7Lr6e5nXmpVyACeRV7K6uMp3DAmzRrcu7fbTyiZNh8JrUirH2Z1mCsuNagTmKS bAMqSsPRC0cQfvjysTn8y7AXXlgULKHWchl8I5QEzzvq7nwzORF6dJzgDXvGalEGl365 OVogFfO2DDq3s/yefel5oHRQQrA7Hb/JvhOw0L5a2iRgxUJSACMtU+himF+qK0WAAeGL RXKe0z4SBdXvDje1xuh1WUtT8JVsPlxWB3gEfCyrnEFf+Ea6BDT9RpbryYcsa9lv/B9h 35ApQEFShcftM/BZiZwhwmOPAfIj4fIbmiQ3laHWRvsThTmuz8v8v5N0NhYQfvMUcgop 9U9g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=aRURrYhPkc/DUoa9sHZUOxeHw101HcwV9CAuTJoVR+U=; b=V/do5Hm6wSPNqNhch2fVH/hczkh+IIzCtWNfcQMHoUbJmooyQDi8zc1txl7JYXYulM SKdXvVe687yp2WB7+dNcD7mbTZHLa29D74Y/YrwlItHoI9EQ3RNE45Zbfl+YV93YRXMY mQWnoSHqCP6us6wgqK11wY+zsCDkuboflgwnc+lGglXiInYpz6Q0nG4oVQyBZ/r3M6+Q RRxS31Ijgf6Yor5Lb4CHSRXbRQ2sakCDVlVbnwdU7rJuMgW888jM8pTQPFBCF3Qbx2Na i6sDF2xwELk7opm7+VZw920iRI6bkuuXmJS+Qd7lH3I2j7ifgOgYdQDyMoVdRvEqUp7M 0G7A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=dw+haINK; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 76si1601839pgf.582.2019.05.15.05.01.08; Wed, 15 May 2019 05:01:24 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=dw+haINK; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730511AbfEOLQe (ORCPT + 99 others); Wed, 15 May 2019 07:16:34 -0400 Received: from mail.kernel.org ([198.145.29.99]:53346 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730504AbfEOLQa (ORCPT ); Wed, 15 May 2019 07:16:30 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id D21C920843; Wed, 15 May 2019 11:16:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1557918990; bh=m5iosIFsI2ncGxd+NaJq4L+uefMkxQMOT3SpPDn2rwc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dw+haINKXJPkHgJ61XJcI2LsDTzieKdPcD9lU64g9XaMpqZdV356uHYJGQHyvbPO+ Sh8V/2x31HidoZ2+fLpaRQA6Qyk2cHL4eVK9HxerjUa+4oQckyA/HIdB3Uy713PZ9I TJY2Xp4sZo/I7rnIHUgBYgWNLCoc4isAGRNhXkUg= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Rikard Falkeborn , "Steven Rostedt (VMware)" , Tzvetomir Stoyanov , Arnaldo Carvalho de Melo , Sasha Levin Subject: [PATCH 4.14 025/115] tools lib traceevent: Fix missing equality check for strcmp Date: Wed, 15 May 2019 12:55:05 +0200 Message-Id: <20190515090701.130504781@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190515090659.123121100@linuxfoundation.org> References: <20190515090659.123121100@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org [ Upstream commit f32c2877bcb068a718bb70094cd59ccc29d4d082 ] There was a missing comparison with 0 when checking if type is "s64" or "u64". Therefore, the body of the if-statement was entered if "type" was "u64" or not "s64", which made the first strcmp() redundant since if type is "u64", it's not "s64". If type is "s64", the body of the if-statement is not entered but since the remainder of the function consists of if-statements which will not be entered if type is "s64", we will just return "val", which is correct, albeit at the cost of a few more calls to strcmp(), i.e., it will behave just as if the if-statement was entered. If type is neither "s64" or "u64", the body of the if-statement will be entered incorrectly and "val" returned. This means that any type that is checked after "s64" and "u64" is handled the same way as "s64" and "u64", i.e., the limiting of "val" to fit in for example "s8" is never reached. This was introduced in the kernel tree when the sources were copied from trace-cmd in commit f7d82350e597 ("tools/events: Add files to create libtraceevent.a"), and in the trace-cmd repo in 1cdbae6035cei ("Implement typecasting in parser") when the function was introduced, i.e., it has always behaved the wrong way. Detected by cppcheck. Signed-off-by: Rikard Falkeborn Reviewed-by: Steven Rostedt (VMware) Cc: Tzvetomir Stoyanov Fixes: f7d82350e597 ("tools/events: Add files to create libtraceevent.a") Link: http://lkml.kernel.org/r/20190409091529.2686-1-rikard.falkeborn@gmail.com Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Sasha Levin --- tools/lib/traceevent/event-parse.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/lib/traceevent/event-parse.c b/tools/lib/traceevent/event-parse.c index 3955ba9e6fcb5..7989dd6289e7a 100644 --- a/tools/lib/traceevent/event-parse.c +++ b/tools/lib/traceevent/event-parse.c @@ -2206,7 +2206,7 @@ eval_type_str(unsigned long long val, const char *type, int pointer) return val & 0xffffffff; if (strcmp(type, "u64") == 0 || - strcmp(type, "s64")) + strcmp(type, "s64") == 0) return val; if (strcmp(type, "s8") == 0) -- 2.20.1