Received: by 2002:a05:6359:c8b:b0:c7:702f:21d4 with SMTP id go11csp1690105rwb; Fri, 23 Sep 2022 17:19:14 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4TnjL7DnUBduH3xpExGWn9dTBrqZvrDwIzbBEK+PWiJXptZFafmQh6pExUpSQkM6V1K4uO X-Received: by 2002:a17:907:9807:b0:781:feee:f87c with SMTP id ji7-20020a170907980700b00781feeef87cmr9276172ejc.101.1663978754587; Fri, 23 Sep 2022 17:19:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1663978754; cv=none; d=google.com; s=arc-20160816; b=xJ7exSwyHPwueL71IlCfEQ5pSMRaDdXThKTKcVc5Tx33drqhJajhVXyFWkTsYFlAWp 0zqEmPd+Xa7Ni/YfzAgD8DB7pRuTfGk3kQjfnUobuwtkyB9+ZLmI7CrHCoyUXKqL6tFL 3S0KZZn+OJ+DBrlYmFyQ2xRbuS4yC9hpw27lEZ1Z4teNrEzVWlRq/lYaB2aTXM1Qa+R0 onaJHCslGOOnt7u5qx93X65U6LdrcrusOWCtg17wmNsxPH7lYBXluPNXOR00V8rTedYo m7twH+tDAE0oRp680pbauQKK7OrRfjnlpDnDlPpzMS1HuSUZAiTUOPnvqWD7wHU3zufJ 48mA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=HVq49c8Bz/d6Qe5JwhLqq2RMMl1nsvDssCJbwBMkwcs=; b=w63pbXT5G8BeoY6t3vZTHVj+YfH68EPm+HwRcD1ytKfU/fUERQrosuAt5+Vcsls5zw ldEuZy7lYUm3OQV8SCT4Fjn+Fs6Mrt3gR8ZTBqEukX6n7Wxeu9szv0Ry+8PG8O4OSX7C cCJYsBwTRw5/MOWDOC5g5nwLjNiCa8FSCIJ2yoROFozP22Dv54v/IapeKFQlxvhp1iOp Ban9iNudAlqDRQEKWhKliuS6Yns4PCvCrWjlFqsSUXpEZZW3hZEKBkCdWgqGMkOV0nmu kKccWS+2kODriCMmIrR0eLI2nKXuuDH1I5xYYnmzidytSewr51vA7f0Tl/LSW+o2mvWa RAlg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=Cz7Qsoc9; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id g22-20020a50ee16000000b0044df6d4f36dsi8839910eds.325.2022.09.23.17.18.41; Fri, 23 Sep 2022 17:19:14 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=Cz7Qsoc9; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232896AbiIWXU4 (ORCPT + 99 others); Fri, 23 Sep 2022 19:20:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38710 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232317AbiIWXUs (ORCPT ); Fri, 23 Sep 2022 19:20:48 -0400 Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com [IPv6:2a00:1450:4864:20::434]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 70293109625 for ; Fri, 23 Sep 2022 16:20:47 -0700 (PDT) Received: by mail-wr1-x434.google.com with SMTP id cc5so2103533wrb.6 for ; Fri, 23 Sep 2022 16:20:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date; bh=HVq49c8Bz/d6Qe5JwhLqq2RMMl1nsvDssCJbwBMkwcs=; b=Cz7Qsoc9gVTOuAYUVB9jrLnxFG/zjR/xFnG9Pzvlyp4bV2vgNNRVUqk7ulF/w4v4s+ gZ6KGix0/2dEvm68NLrsceLD9AsQfpjtTQ3s4N6JklT7p6HNsSd8CySpx0ncx0U6IReq ix1xjmGjyn1tGzm3+nRRkCcAAs2/eK6Oovzr1Tg2SMU4FOS89uQ57DkwjLizfLajGXQf MoGG2giz3V4F21YJFEH/NNMcgmgc9J4HhZua89xJO91hWrCOQs1TkCPqk+a3QklxAGEC ogcuPMnhnR4naM4/XneuBCjTN7HQfvgQeJsowh9EmFN5Kj/SgZUWGwzk8lxCMO2pTdcL nXqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date; bh=HVq49c8Bz/d6Qe5JwhLqq2RMMl1nsvDssCJbwBMkwcs=; b=kDZb27+uEQ/LTFQ3R+ZRMhqcexvtkLmBRkGon/MZASyA2guKZdxovc7Wu2GY+b98sl zVsqyq8NtvAVdDP3PrvXVVa+SaqE7xCNh/lNsDSXF2CvrV8MPW/tUlOMnUJBX+erZh4G mi+8DBHhwt0l6OYtsqxrelqy2o1SfrIV4L5Ln0JWXNZJZnkcs+Eo+k/tpdU7lk686N2S R25Pp8C+SLZi7+niI6TsGdLo/vthA1RYh3kekpsj5md2BxpDGGZgT/K/Z8Y83V/Rx0JO /8MG35GDwtB2HoqPm+SEaYWBX35IeIiyXhh98cXG1qsnVw4eUtUWD9S9QmdM8eypDYwM 0dPw== X-Gm-Message-State: ACrzQf3OQaEUI8wZoWEKVVCPgOJvLA2qFGUUkbOR4pfF4qJSWgszhxf5 WrZA64BLCEgXeQhb7DfrvkT6pPqNDecQA7+qi41F3Q== X-Received: by 2002:adf:bc13:0:b0:228:6d28:d2cb with SMTP id s19-20020adfbc13000000b002286d28d2cbmr6565920wrg.375.1663975245850; Fri, 23 Sep 2022 16:20:45 -0700 (PDT) MIME-Version: 1.0 References: <20220923173142.805896-1-namhyung@kernel.org> <20220923173142.805896-2-namhyung@kernel.org> In-Reply-To: <20220923173142.805896-2-namhyung@kernel.org> From: Ian Rogers Date: Fri, 23 Sep 2022 16:20:33 -0700 Message-ID: Subject: Re: [PATCH 1/4] perf record: Fix a segfault in record__read_lost_samples() To: Namhyung Kim Cc: Arnaldo Carvalho de Melo , Jiri Olsa , Ingo Molnar , Peter Zijlstra , LKML , Adrian Hunter , linux-perf-users@vger.kernel.org, Stephane Eranian Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-17.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, ENV_AND_HDR_SPF_MATCH,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, USER_IN_DEF_DKIM_WL,USER_IN_DEF_SPF_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Sep 23, 2022 at 10:32 AM Namhyung Kim wrote: > > When it fails to open events record__open() returns without setting the > session->evlist. Then it gets a segfault in the function trying to read > lost sample counts. You can easily reproduce it as a normal user like: > > $ perf record -p 1 true > ... > perf: Segmentation fault > ... > > Skip the function if it has no evlist. And add more protection for evsels > which are not properly initialized. > > Signed-off-by: Namhyung Kim Acked-by: Ian Rogers Thanks, Ian > --- > tools/perf/builtin-record.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c > index 741e763436ca..f4f1619199e5 100644 > --- a/tools/perf/builtin-record.c > +++ b/tools/perf/builtin-record.c > @@ -1888,6 +1888,10 @@ static void record__read_lost_samples(struct record *rec) > struct perf_record_lost_samples *lost; > struct evsel *evsel; > > + /* there was an error during record__open */ > + if (session->evlist == NULL) > + return; > + > lost = zalloc(PERF_SAMPLE_MAX_SIZE); > if (lost == NULL) { > pr_debug("Memory allocation failed\n"); > @@ -1899,6 +1903,8 @@ static void record__read_lost_samples(struct record *rec) > evlist__for_each_entry(session->evlist, evsel) { > struct xyarray *xy = evsel->core.sample_id; > > + if (xy == NULL || evsel->core.fd == NULL) > + continue; > if (xyarray__max_x(evsel->core.fd) != xyarray__max_x(xy) || > xyarray__max_y(evsel->core.fd) != xyarray__max_y(xy)) { > pr_debug("Unmatched FD vs. sample ID: skip reading LOST count\n"); > -- > 2.37.3.998.g577e59143f-goog >