From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 54D24C00A5A for ; Thu, 19 Jan 2023 16:09:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229488AbjASQJG (ORCPT ); Thu, 19 Jan 2023 11:09:06 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60154 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229750AbjASQId (ORCPT ); Thu, 19 Jan 2023 11:08:33 -0500 Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com [IPv6:2a00:1450:4864:20::433]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C641A7ED6 for ; Thu, 19 Jan 2023 08:08:26 -0800 (PST) Received: by mail-wr1-x433.google.com with SMTP id t5so2363463wrq.1 for ; Thu, 19 Jan 2023 08:08:26 -0800 (PST) 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:message-id:reply-to; bh=fv4FveSXLtbMs8fIyKU7U7B1TC2c3Ol7CJ/N2mCREsE=; b=Z6hdEw1xC+r9OZvwDwA+B122spz7EsoHP17f0Cp0vq9QAN4CfQCci6tDWJkxfZ9fNo fzLNoMg3XjnZOQI0eUNHprxoWuzAK9gnijj0wJ8SfUeGbvhQ2b+9wuuf4KylcWf0dLQb BV6YyUFFWnr4hylTSaSxk+vggHHkY2yrUXDhwbKtI8GscswMZcVgWjNYfu/gIejjmr4F 5Zl1MjBlBade7gjOmcbOKg4GIpxkJSXMHS7LZC/aoCoejUSyCUVMH6XTFveOZojxIvTK DrXT+Z97kKkkykC2hxSjWJos0PWZ77JFKJ39E+jLcUrpe/YXXu9OTBWhoZ/N6vYGUPrq 9tNw== 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:message-id :reply-to; bh=fv4FveSXLtbMs8fIyKU7U7B1TC2c3Ol7CJ/N2mCREsE=; b=GDSdbqcn5ufMXnkqOqH/guNIsLmk4sATEuNmWyCpyBpn4hiE1NRqlAiTErM6kYhgpy gQz9kUMomduWqycYL3B2w4j3QDbYyupuqnWzoszjdVdg1tFAc5aUScubS4spFGMzQIvd +R8YA/LE4U4Im4QkiMTKNnPS1g1qaZyUR295ELUUNvfiL07ESw9oLGu8JRuYe4OlAfcj O8GU/JVC1CqgkdEBz1EteuMV5oCmzbo73AwPnQtSZb0uJn77qZJusmaeCLtuqQ++VftB WBYnK49uMlCe6DaBOPvRqfN0FIspu6XPPe4SKdEf3eM0nJTc+ondO7OF6TkWYfHox+jy aI4A== X-Gm-Message-State: AFqh2ko/V1fAvdk39QBebaUbt9w9CIE8sZNm+BrntklemsHwepzCm/7Z AXPiDrhCMmF1YwhJfneg0zC8QP+D4eOq4tOTSzZkIg== X-Google-Smtp-Source: AMrXdXuGSDCU/sElIGWgZvb6vilVuirMVBG1izak7wLK9Loxpwn63U0ajRG3KIbUTiISw4IRZxfZrt/XGomjC/ouxDk= X-Received: by 2002:a05:6000:124f:b0:2bd:df97:13f4 with SMTP id j15-20020a056000124f00b002bddf9713f4mr496689wrx.654.1674144504966; Thu, 19 Jan 2023 08:08:24 -0800 (PST) MIME-Version: 1.0 References: <20230113185732.134861-1-irogers@google.com> In-Reply-To: <20230113185732.134861-1-irogers@google.com> From: Ian Rogers Date: Thu, 19 Jan 2023 08:08:13 -0800 Message-ID: Subject: Re: [PATCH] perf buildid: Avoid copy of uninitialized memory To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Nathan Chancellor , Nick Desaulniers , Tom Rix , Ian Rogers , Adrian Hunter , Leo Yan , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev Cc: Stephane Eranian Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-perf-users@vger.kernel.org On Fri, Jan 13, 2023 at 10:57 AM Ian Rogers wrote: > > build_id__init only copies the buildid data up to size leaving the > rest of the data array uninitialized. Copying the full array during > synthesis means the written event contains uninitialized memory. This > was detected by the Clang/LLVM memory sanitizer. > > Signed-off-by: Ian Rogers > --- > tools/perf/util/synthetic-events.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/perf/util/synthetic-events.c b/tools/perf/util/synthetic-events.c > index 3ab6a92b1a6d..348d05e4ec03 100644 > --- a/tools/perf/util/synthetic-events.c > +++ b/tools/perf/util/synthetic-events.c > @@ -2219,7 +2219,7 @@ int perf_event__synthesize_build_id(struct perf_tool *tool, struct dso *pos, u16 > > len = pos->long_name_len + 1; > len = PERF_ALIGN(len, NAME_ALIGN); > - memcpy(&ev.build_id.build_id, pos->bid.data, sizeof(pos->bid.data)); > + memcpy(&ev.build_id.build_id, pos->bid.data, pos->bid.size); Ping. Should be an uncontroversial change to fix a copy of uninitialized memory into the perf.data file during synthesis. Thanks, Ian > ev.build_id.size = pos->bid.size; > ev.build_id.header.type = PERF_RECORD_HEADER_BUILD_ID; > ev.build_id.header.misc = misc | PERF_RECORD_MISC_BUILD_ID_SIZE; > -- > 2.39.0.314.g84b9a713c41-goog >