Received: by 2002:a05:7412:f589:b0:e2:908c:2ebd with SMTP id eh9csp928913rdb; Wed, 1 Nov 2023 06:57:09 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGMFf/Mkx/K8d0K4GytCjiaG7Id1eLHBTQQ1oN3S0kE6S7nY0wQuxUaTX6+cyzp63XZTvzX X-Received: by 2002:a05:6a21:9706:b0:163:a3ce:a699 with SMTP id ub6-20020a056a21970600b00163a3cea699mr10640536pzb.57.1698847029144; Wed, 01 Nov 2023 06:57:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698847029; cv=none; d=google.com; s=arc-20160816; b=TXJmFdjFsybiwvtFjpXQLMWevGhwbzKaOREznB/PYKGrDb3cGdqOyxjwpCIPQ37cyZ EpSBovRsIYASVfBesYS7TDJmy7pllcRk5v80W4tYC0p/LjOnZzzGjIP6mY2LTp2UwLFw R07rqYIReiCAisyxEMGnodmu9XD43+ZstF0jGQxAEYu4qvGgbdsNwed7isq0C4y3xBN6 CtxI28G04FIWv+IY39fPGhhhFm2qbkvchh+tHhelZR2CY/KwXYB3zmolZIhNLwTvCJys tAb0W7OPKpyn070HOvw2zM6p5zVDMSgRzQJXIYdOf0BDxiCB3genO3a8V42Lxw6fdocQ IwCw== 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:mime-version :dkim-signature; bh=+yzQj0RPB9P3n6Qwul4am9clWs3GiZYO1kyhQz5cK1w=; fh=9jaYxiIrrw40TxeJkmktH0UANBy5Ssg99qI0FH9pnuM=; b=VfzQjGNx1f0SCSz1GFBF1TsP/WRHvURxvAkAxQ/uopdY7xI8BSeT1X4oR/cWADSi8m WeGg5Cj23/WutHN00pV4mM40pBOXtwaJouMMknucwKUMRhp667Zc0NNXyAvVecKzVsVn 1p2sA67c3WEq4Jqat9KNgFaNxVZfnXAmI6uqxv5z9uOmNJG0Thgj1XHHEke2nWJQ8+rd f66/fEtIIfORZjlejY5kDnNJ3bHoEw17D2iBmHcubs9wguNVdgE4T7ExJ3HlRKcqlzJH dHT9ElqSxcEeAmto704xQ8NcIKdzJj6X6l12q6DTLyAd1ce0OqiCCkRmVzyP0iJvJSd7 E5hw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=Osfx+K2g; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from lipwig.vger.email (lipwig.vger.email. [23.128.96.33]) by mx.google.com with ESMTPS id r15-20020aa7988f000000b0068fcc84dda7si1536306pfl.327.2023.11.01.06.57.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Nov 2023 06:57:09 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) client-ip=23.128.96.33; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=Osfx+K2g; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by lipwig.vger.email (Postfix) with ESMTP id 1BB9080CB155; Wed, 1 Nov 2023 06:57:02 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1343489AbjKAN4t (ORCPT + 99 others); Wed, 1 Nov 2023 09:56:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55494 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231501AbjKAN4s (ORCPT ); Wed, 1 Nov 2023 09:56:48 -0400 Received: from mail-yb1-xb29.google.com (mail-yb1-xb29.google.com [IPv6:2607:f8b0:4864:20::b29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 30D2D102; Wed, 1 Nov 2023 06:56:46 -0700 (PDT) Received: by mail-yb1-xb29.google.com with SMTP id 3f1490d57ef6-da2b9234a9fso4494675276.3; Wed, 01 Nov 2023 06:56:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1698847005; x=1699451805; darn=vger.kernel.org; h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=+yzQj0RPB9P3n6Qwul4am9clWs3GiZYO1kyhQz5cK1w=; b=Osfx+K2gQNayvuHziBP9OY/dhFAHAPXp9P4ErXVCXtLwAIGHBHuRO320+mez+AjYYP g2uBlSdrl/nwR0GyQ1aGOtqle4gBef9gx5p9+wlYuLdUgcVBpkXNEV1pgwgRHqnf1s5K rwCNNn2a7R24JuOLCnR7WnFP03vqhXpw90f4trkm1jtAGQRQyf+8w+wCu8lcADt1bQ7r hgm+xYGZyyl8v5K5qpp06mUE/7GEIacypbW9g8d6aMi/q4EoE6MWdCoMVaMY+DcUaLAU rxzTvODcCGtVFciNBB0U5dEPej5RQiC7xZdEbViWw2GlpfZ9n9jRE+SU+Z0nIjHW1qXV biwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698847005; x=1699451805; h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=+yzQj0RPB9P3n6Qwul4am9clWs3GiZYO1kyhQz5cK1w=; b=aFM8PH4JwqbcfDgS+tl9vt3RiYFeWseP8WZhSnglVnyK0KgwF89+wkA6xkqaMGYThW VCiMoWAvBmkk3Dt2j1WaSiN7NNArCdH9sg0GB8CeXOKGHb9zFcKnDGCYogDYtSAN/zh1 n3vc2DKs/iA8+cxzCGxyYBh4JHxlIYnvCu/a9kGG3ABsw10RCsE0w/RBznBJoYaQcjl8 /M7QGu01OHfm2c8Ubz1X6ncmyRiROccISczOc6g0NVKhJErZGNkzfhCaVsx8m01FfUrC UFKQj91+3tr7yIpRICedZlIVz+IrMfv5uT0q+geCIgi9/7Nc0oOzc4STj+Fq2i4j0VWv jUWQ== X-Gm-Message-State: AOJu0YzU5ZMfeF/lPLbhxs6kNvt7FkgbImlqr3ehODf8eWsa72+T7rff 5wZ/jnPZk5rQVCTUm6up63vRAgCOHgYfDEUOuQ== X-Received: by 2002:a25:b790:0:b0:da1:5a1a:e79c with SMTP id n16-20020a25b790000000b00da15a1ae79cmr10500772ybh.50.1698847005123; Wed, 01 Nov 2023 06:56:45 -0700 (PDT) MIME-Version: 1.0 From: Hao Sun Date: Wed, 1 Nov 2023 14:56:34 +0100 Message-ID: Subject: bpf: incorrectly reject program with `back-edge insn from 7 to 8` To: Alexei Starovoitov , Daniel Borkmann , John Fastabend , Andrii Nakryiko , Martin KaFai Lau , Song Liu , Yonghong Song , KP Singh , Stanislav Fomichev , Hao Luo , Jiri Olsa , Mykola Lysenko , Shuah Khan Cc: Linux Kernel Mailing List , bpf Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-0.6 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lipwig.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (lipwig.vger.email [0.0.0.0]); Wed, 01 Nov 2023 06:57:02 -0700 (PDT) Hi, The verifier incorrectly rejects the following prog in check_cfg() when loading with root with confusing log `back-edge insn from 7 to 8`: /* 0: r9 = 2 * 1: r3 = 0x20 * 2: r4 = 0x35 * 3: r8 = r4 * 4: goto+3 * 5: r9 -= r3 * 6: r9 -= r4 * 7: r9 -= r8 * 8: r8 += r4 * 9: if r8 < 0x64 goto-5 * 10: r0 = r9 * 11: exit * */ BPF_MOV64_IMM(BPF_REG_9, 2), BPF_MOV64_IMM(BPF_REG_3, 0x20), BPF_MOV64_IMM(BPF_REG_4, 0x35), BPF_MOV64_REG(BPF_REG_8, BPF_REG_4), BPF_JMP_IMM(BPF_JA, 0, 0, 3), BPF_ALU64_REG(BPF_SUB, BPF_REG_9, BPF_REG_3), BPF_ALU64_REG(BPF_SUB, BPF_REG_9, BPF_REG_4), BPF_ALU64_REG(BPF_SUB, BPF_REG_9, BPF_REG_8), BPF_ALU64_REG(BPF_ADD, BPF_REG_8, BPF_REG_4), BPF_JMP32_IMM(BPF_JLT, BPF_REG_8, 0x68, -5), BPF_MOV64_REG(BPF_REG_0, BPF_REG_9), BPF_EXIT_INSN() -------- Verifier Log -------- func#0 @0 back-edge from insn 7 to 8 processed 0 insns (limit 1000000) max_states_per_insn 0 total_states 0 peak_states 0 mark_read 0 This is not intentionally rejected, right? Best Hao