Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp1333127imm; Thu, 23 Aug 2018 00:59:54 -0700 (PDT) X-Google-Smtp-Source: AA+uWPwmjvfUmuBHEP9kPA9oTNEBoo+3GpiI5hOkLLgBianaDP6xScYWLGO7xmekPAAYCeRwhSoy X-Received: by 2002:a17:902:e20b:: with SMTP id ce11-v6mr57166358plb.136.1535011194918; Thu, 23 Aug 2018 00:59:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1535011194; cv=none; d=google.com; s=arc-20160816; b=h0Z8VTp7m1tq+S5V5j316Qgt7pEzQaYPAthqpzjT8vm+3dhgfm7vR4/C28tk6dWDSW ytLcmO1k5nqn/42hpaIGPAhfeDJKq8WyTyM4URiaW0QHOgP07143dDKF876kwK4sKA32 fprmDMkHMaTSQCM2/MUUhzIb7Sm0mV3wVGYM+sILk9joYlrrC/0TRqDUsa6f/x+amppS GN/sXOKq9Gyv+3+DDSe3ayTpvAOAl2pmN3mYMF4vHKoad4KY/zEUJbOtCuSFWG6n0V59 8lCf7NtJj3tATqJiZQ44Ya6Q+D/jWdH6gacBuyRUlQO0TPbzZk7fVCuqV70M9VhFtRjW BImg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=N7i4xxL/5uZXgentxmvk3VwZctC7x9ykEspYT9xyrto=; b=yby+VzzlN4cHdKFaBPw9lATifNMXX+EMY1zb6P0UAt3Ll64IjEk8j0Mt0/B9ZSCc9B Wm6N9R9Bya/koBnMUmU9BAIgKvxSJHBpEeGSwObie1nlPh8/r8g2tUXcJ0RN3J7jnVwj hWvR0kpatQZEwWQL9pFErbNwKvPvc1SHVXe4h2XEngT8iyJxxQWQx0ialtIB17jB0ji2 b1g4e/IYogvfFIN6FQgyvt/iUYVsh15Is8ptfq61UtOgSEb2bs3/MIDmk64AfqS5FNl+ 23FMKeWKikg+DQNfVtGjerEmudchdv8nPxzIgtgRFiLL0AcUWysCZMDj4B9EwtPk3Ukd c4mg== ARC-Authentication-Results: i=1; mx.google.com; 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 p83-v6si4119759pfa.180.2018.08.23.00.59.40; Thu, 23 Aug 2018 00:59:54 -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; 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 S1727853AbeHWL0a (ORCPT + 99 others); Thu, 23 Aug 2018 07:26:30 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:41720 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726995AbeHWL03 (ORCPT ); Thu, 23 Aug 2018 07:26:29 -0400 Received: from localhost (5355525A.cm-6-6b.dynamic.ziggo.nl [83.85.82.90]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id 29E6B9D2; Thu, 23 Aug 2018 07:58:05 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Ravi Bangoria , Sandipan Das , Jiri Olsa , "Naveen N. Rao" , Sukadev Bhattiprolu , Arnaldo Carvalho de Melo , Sasha Levin Subject: [PATCH 4.4 28/79] perf report powerpc: Fix crash if callchain is empty Date: Thu, 23 Aug 2018 09:53:04 +0200 Message-Id: <20180823074920.563553899@linuxfoundation.org> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180823074918.641878835@linuxfoundation.org> References: <20180823074918.641878835@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.4-stable review patch. If anyone has any objections, please let me know. ------------------ From: Sandipan Das [ Upstream commit 143c99f6ac6812d23254e80844d6e34be897d3e1 ] For some cases, the callchain provided by the kernel may be empty. So, the callchain ip filtering code will cause a crash if we do not check whether the struct ip_callchain pointer is NULL before accessing any members. This can be observed on a powerpc64le system running Fedora 27 as shown below. # perf record -b -e cycles:u ls Before: # perf report --branch-history perf: Segmentation fault -------- backtrace -------- perf[0x1027615c] linux-vdso64.so.1(__kernel_sigtramp_rt64+0x0)[0x7fff856304d8] perf(arch_skip_callchain_idx+0x44)[0x10257c58] perf[0x1017f2e4] perf(thread__resolve_callchain+0x124)[0x1017ff5c] perf(sample__resolve_callchain+0xf0)[0x10172788] ... After: # perf report --branch-history Samples: 25 of event 'cycles:u', Event count (approx.): 2306870 Overhead Source:Line Symbol Shared Object + 11.60% _init+35736 [.] _init ls + 9.84% strcoll_l.c:137 [.] __strcoll_l libc-2.26.so + 9.16% memcpy.S:175 [.] __memcpy_power7 libc-2.26.so + 9.01% gconv_charset.h:54 [.] _nl_find_locale libc-2.26.so + 8.87% dl-addr.c:52 [.] _dl_addr libc-2.26.so + 8.83% _init+236 [.] _init ls ... Reported-by: Ravi Bangoria Signed-off-by: Sandipan Das Acked-by: Ravi Bangoria Cc: Jiri Olsa Cc: Naveen N. Rao Cc: Sukadev Bhattiprolu Link: http://lkml.kernel.org/r/20180611104049.11048-1-sandipan@linux.ibm.com Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- tools/perf/arch/powerpc/util/skip-callchain-idx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/tools/perf/arch/powerpc/util/skip-callchain-idx.c +++ b/tools/perf/arch/powerpc/util/skip-callchain-idx.c @@ -243,7 +243,7 @@ int arch_skip_callchain_idx(struct threa u64 ip; u64 skip_slot = -1; - if (chain->nr < 3) + if (!chain || chain->nr < 3) return skip_slot; ip = chain->ips[2];