From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752541AbbJFJB3 (ORCPT ); Tue, 6 Oct 2015 05:01:29 -0400 Received: from mailout3.w1.samsung.com ([210.118.77.13]:11128 "EHLO mailout3.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750936AbbJFJBZ (ORCPT ); Tue, 6 Oct 2015 05:01:25 -0400 X-AuditID: cbfec7f5-f794b6d000001495-7e-56138de390eb From: Andrzej Hajda To: linux-kernel@vger.kernel.org Cc: Andrzej Hajda , Bartlomiej Zolnierkiewicz , Marek Szyprowski , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , kernel-janitors@vger.kernel.org Subject: [PATCH] perf tools: fix handling read result Date: Tue, 06 Oct 2015 11:00:17 +0200 Message-id: <1444122017-16856-1-git-send-email-a.hajda@samsung.com> X-Mailer: git-send-email 1.9.1 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrPJMWRmVeSWpSXmKPExsVy+t/xq7qPe4XDDBY2slvcWneO1eJi20U2 i657O9gsNs5Yz2qx9Za0xeVdc9gs1h65y25x6cACJgcOjytPOTw2repk83i/7yqbR9+WVYwe nzfJBbBGcdmkpOZklqUW6dslcGWcn3GDreARW0XDqW+MDYznWbsYOTkkBEwklp/fyQhhi0lc uLeerYuRi0NIYCmjRPvNBywQThOTxLQDc8Cq2AQ0Jf5uvskGYosIKEhs7n0GNolZYAWTxOzj 5iC2sICpxL0tr8FqWARUJY4+fgRWwyvgLDHr02YWiG1yEiePTWadwMi9gJFhFaNoamlyQXFS eq6RXnFibnFpXrpecn7uJkZIsHzdwbj0mNUhRgEORiUeXombQmFCrIllxZW5hxglOJiVRHh/ cgmHCfGmJFZWpRblxxeV5qQWH2KU5mBREueduet9iJBAemJJanZqakFqEUyWiYNTqoFRZWfJ s89d4SY7FpRWR9wofFKS7Lr4rV+Ycf9qJktPl+vcSq//cK3eXNdwYlNu+DLlh519uQaLG51N LUI3/AswbRQojX0tG3LUeS7fpIUehnOOSEuyc51LkHls89NetdOpx6by1OkzLklJci7/eBfl P6xxb2HzO2eSrH2yy3F3k2LasiVqJkosxRmJhlrMRcWJAJUACRwSAgAA Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The function can return negative value, assigning it to unsigned variable can cause memory corruption. The problem has been detected using proposed semantic patch scripts/coccinelle/tests/unsigned_lesser_than_zero.cocci [1]. [1]: http://permalink.gmane.org/gmane.linux.kernel/2038576 Signed-off-by: Andrzej Hajda --- tools/perf/util/event.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c index cb98b5a..8b10621 100644 --- a/tools/perf/util/event.c +++ b/tools/perf/util/event.c @@ -67,7 +67,8 @@ static int perf_event__get_comm_ids(pid_t pid, char *comm, size_t len, char filename[PATH_MAX]; char bf[4096]; int fd; - size_t size = 0, n; + size_t size = 0; + ssize_t n; char *nl, *name, *tgids, *ppids; *tgid = -1; -- 1.9.1