Received: by 2002:a05:6358:bb9e:b0:b9:5105:a5b4 with SMTP id df30csp3043751rwb; Mon, 5 Sep 2022 05:44:55 -0700 (PDT) X-Google-Smtp-Source: AA6agR7x2kqM4bVy5Z1VqJ+yI3e8ibFUQYp8GqfxjWH/dn7jiNcGG7YjlDBOlgdjMomIysKR2b8X X-Received: by 2002:a63:914c:0:b0:42b:a8fa:eb4a with SMTP id l73-20020a63914c000000b0042ba8faeb4amr35455822pge.481.1662381894957; Mon, 05 Sep 2022 05:44:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1662381894; cv=none; d=google.com; s=arc-20160816; b=0mX5dQ9MasZHCuZ10Rz6WD99mDQgV+CMutLp2aNP7MJXDXCzc+O34FqDFRYk+4awBJ jVP31AEUuTTBsczztGbUGeVQRP9DPKmPBEhUHidjXj6TIDqV/+Foqa29zomso4j1PJkq gYMj3ysmklp7D2tWgzzsptXPeCuziWGUxDLOd4/B1AsYnwmIkhxvI1hChLm1YxRRZGzX TPlHdzANq1dAa6PYpt8wEbovKzhmQafadco32EeskfDoygL6bp3UTH0HTEbxZwU6YMtc PS197Clk2LZxIbbFhTVyXuA6sqKj0eR45oIyfP4VgJfAXsgXBQI0AwhREawUt9lSNkFT 1HdA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:dkim-signature; bh=63Lbiss0mCSaP/JatuEwb7Qda7JVHXONR7b7gS/f0zw=; b=BoaPZR6J591p4LO0sqY8LZututF1/RYvGzHLQEW6LgH2ocfH7eOO2a3s1C/46mvK9u WdQs+Oy4zgxE+Nt/tem0dN6Stj26ceLQO96iQRAPnbr1sEBMeviWw2jmW/cziQlALEoS SnmoWj7W54HfUpNUb5zVQKX5FJE7AgNkkKGjr02t5B3+3M7s7a8bglaG0aGiqTMtHXGT fv21TQC7n4z1PjBssmiHu1EYxAjc98g7PcjvyHd+L3ITGpIiEs0ZJ3zg8dFvSLsq4k9C KDur/LA1wFOqhFjAIhvqeyhAdWM2XmCS1auJe+YMRCVzBi4tnYOKOXx2QXqpoiMxIEpx Yq7w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=UDsvJYgt; 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 s18-20020a17090302d200b00176988304easi5391109plk.91.2022.09.05.05.44.39; Mon, 05 Sep 2022 05:44:54 -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=UDsvJYgt; 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 S238214AbiIEMff (ORCPT + 99 others); Mon, 5 Sep 2022 08:35:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40416 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238196AbiIEMce (ORCPT ); Mon, 5 Sep 2022 08:32:34 -0400 Received: from mail-ej1-x64a.google.com (mail-ej1-x64a.google.com [IPv6:2a00:1450:4864:20::64a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B1D3161737 for ; Mon, 5 Sep 2022 05:26:55 -0700 (PDT) Received: by mail-ej1-x64a.google.com with SMTP id nb19-20020a1709071c9300b0074151953770so2298333ejc.21 for ; Mon, 05 Sep 2022 05:26:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date; bh=63Lbiss0mCSaP/JatuEwb7Qda7JVHXONR7b7gS/f0zw=; b=UDsvJYgtTXPZF5a9agPh2mXyrYJrhXMTAzXPZNghSJw5ee3mNMwXIwpKa+RKY0zuMd 0oketLAQ8tAqBq9H1OztfYXsFZLC3/GjPvaRGV4Tf5cx5pY09RUcAdfIPub4N1YomTRe qN17vYLlykWW3fcYQY5yUk9fGBNhlorODfdAFeJeB/phj1xFUAdvMGDkePvsaAAnNZDZ QNcHmgGjaBYlCKkJsPpqD7vIZwk92kcg49ObV7TTQ+SLXpAZ9pO/JJZcCHGzK92euOmB wKHTk01woRx7PzSGgjyowKFGJYseYwyRla1r4RWjs1ovT7LskcrPtqUZWACg7jNiOAET dJPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date; bh=63Lbiss0mCSaP/JatuEwb7Qda7JVHXONR7b7gS/f0zw=; b=3Gbrd/lIqI5c9WDn9mik8oCKO3zsEwR6a690/Yr9w/G3o8m+uD+0jjnrK3CyxDrjEe tcUFzifNB9MwGAtEDib03lPphFF1q7yia3RiVC7pzhcRIoIptLXhKFmgl6zqx9pqSpUa ptEJsbmOU7E5IeWDrHmmnKLiopyVLzVDK4lI+AZgCOCMApTOt/be8eu8Fa0RjWp458uJ m+ft2uEk1Pk30bO77WKdbIWS1XNEiA594Zs0Nd6vLDxCcF44CtRaJ8rS1qakjLh1M5WG K+TtGONvSNfQTZI2QNufsLtSs75TnZxyctGrPAL3l6wScXneoWNTS8lSFk9JmnDKK8p8 s4uw== X-Gm-Message-State: ACgBeo3fmooAvmx5W+B9dEXAHdj8oC9/fs0huPD7u9EWcNRrhdKIMy04 C5K0BtEfuAoz03DiTI69ASX2fLFsTHA= X-Received: from glider.muc.corp.google.com ([2a00:79e0:9c:201:b808:8d07:ab4a:554c]) (user=glider job=sendgmr) by 2002:a17:907:2c41:b0:741:4906:482b with SMTP id hf1-20020a1709072c4100b007414906482bmr28414813ejc.239.1662380813588; Mon, 05 Sep 2022 05:26:53 -0700 (PDT) Date: Mon, 5 Sep 2022 14:24:50 +0200 In-Reply-To: <20220905122452.2258262-1-glider@google.com> Mime-Version: 1.0 References: <20220905122452.2258262-1-glider@google.com> X-Mailer: git-send-email 2.37.2.789.g6183377224-goog Message-ID: <20220905122452.2258262-43-glider@google.com> Subject: [PATCH v6 42/44] bpf: kmsan: initialize BPF registers with zeroes From: Alexander Potapenko To: glider@google.com Cc: Alexander Viro , Alexei Starovoitov , Andrew Morton , Andrey Konovalov , Andy Lutomirski , Arnd Bergmann , Borislav Petkov , Christoph Hellwig , Christoph Lameter , David Rientjes , Dmitry Vyukov , Eric Dumazet , Greg Kroah-Hartman , Herbert Xu , Ilya Leoshkevich , Ingo Molnar , Jens Axboe , Joonsoo Kim , Kees Cook , Marco Elver , Mark Rutland , Matthew Wilcox , "Michael S. Tsirkin" , Pekka Enberg , Peter Zijlstra , Petr Mladek , Steven Rostedt , Thomas Gleixner , Vasily Gorbik , Vegard Nossum , Vlastimil Babka , kasan-dev@googlegroups.com, linux-mm@kvack.org, linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,USER_IN_DEF_DKIM_WL autolearn=unavailable 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 When executing BPF programs, certain registers may get passed uninitialized to helper functions. E.g. when performing a JMP_CALL, registers BPF_R1-BPF_R5 are always passed to the helper, no matter how many of them are actually used. Passing uninitialized values as function parameters is technically undefined behavior, so we work around it by always initializing the registers. Signed-off-by: Alexander Potapenko --- Link: https://linux-review.googlesource.com/id/I8ef9dbe94724cee5ad1e3a162f2b805345bc0586 --- kernel/bpf/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/bpf/core.c b/kernel/bpf/core.c index 3d9eb3ae334ce..21c74fac5131c 100644 --- a/kernel/bpf/core.c +++ b/kernel/bpf/core.c @@ -2002,7 +2002,7 @@ static u64 ___bpf_prog_run(u64 *regs, const struct bpf_insn *insn) static unsigned int PROG_NAME(stack_size)(const void *ctx, const struct bpf_insn *insn) \ { \ u64 stack[stack_size / sizeof(u64)]; \ - u64 regs[MAX_BPF_EXT_REG]; \ + u64 regs[MAX_BPF_EXT_REG] = {}; \ \ FP = (u64) (unsigned long) &stack[ARRAY_SIZE(stack)]; \ ARG1 = (u64) (unsigned long) ctx; \ -- 2.37.2.789.g6183377224-goog