From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id +QylDwIa32rArhsAWB0awg (envelope-from ) for ; Mon, 26 Oct 2026 05:14:42 -0400 Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20251104 header.b=VmlqtWbD; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 3BD28378002; Mon, 26 Oct 2026 05:14:42 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-5.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=unavailable autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [IPv6:2620:52:6:3111::32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id A3F5A1E007 for ; Mon, 26 Oct 2026 05:14:41 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 81F234BA2E09 for ; Mon, 26 Oct 2026 09:14:39 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 81F234BA2E09 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20251104 header.b=VmlqtWbD Received: from mail-pj1-x102f.google.com (mail-pj1-x102f.google.com [IPv6:2607:f8b0:4864:20::102f]) by sourceware.org (Postfix) with ESMTPS id D4A494BA2E0F for ; Mon, 26 Oct 2026 09:14:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D4A494BA2E0F Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org D4A494BA2E0F Authentication-Results: sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::102f ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1793006051; cv=none; b=PSE5LjgH0NFJ3P+LEp/UZ4P+KiyFSDA+AXpvi/Cq1hsPgL7AcOjtKnJSm9AG0EsVsLlu0FAdLFhheWnkGPWk2IW4JL0CV5JGW+DG7YK8SlJvmesCS59sdaCZTVopoheyeyprowckFTuiUxF6IWrxj99PRFBKDhX3/lFsL/0s9pI= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1793006051; c=relaxed/simple; bh=yv2AYxQIb4zjJOolvKoZ+1plq9GP06epM1IwXSiCoAc=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=s1taJ3f3dcy8NkJON+OagKfxE+HJcLlKh0dqLTZIov3HWO5j2GMWJD/c17GpBoN66AovL5Y9fYmp/o8cEsF1YBQwzBJePR1TGeJwqqqlgud78uQ4dVteaS9nseD8DPYwsMp2Avu61qRjcLqp+6TfWTcLusjEJqc0BgbgOKz/kIw= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20251104 header.b=VmlqtWbD DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D4A494BA2E0F Received: by mail-pj1-x102f.google.com with SMTP id 98e67ed59e1d1-3a6d800781cso274590a91.1 for ; Mon, 26 Oct 2026 02:14:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1793006050; x=1793610850; darn=sourceware.org; h=content-transfer-encoding:content-type:in-reply-to:from:references :cc:to:content-language:subject:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to:content-type; bh=nIjwimH1pHZFP9IbfzeQzkOSLq9AOM2oKcw/td0V4yM=; b=VmlqtWbDHWMabusu5itI4U8iCvhA18K3BS6q95z1dyEft2xWr8fVZhdWlBCzAN0mCC GXehSrLKbajGDJUwhATLrUSQPB5j3eVg3QNetklvh/F5iQ5iOhdXAuDlVFFVKzudb+Fr yYQCEmP5bnFt5pW7ZeYxH0cQrkBxWJq9R1RFq5TVVB4X1MBVGRd19Si3nEoOr6pQBNLg U7J142JAMXN+9mWGj9Tj6/s9hC6n7/VRj2KyPYknbZPFepHNwTzhD7nWFuVUHX4+Aiab hu20O4b+Jve4xG1jKyqDqq10Euv5OjW0uTvPq1x+/1WXiUm7uNX5EFRpgxkRZTt+/d13 L1rw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1793006050; x=1793610850; h=content-transfer-encoding:content-type:in-reply-to:from:references :cc:to:content-language:subject:user-agent:mime-version:date :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=nIjwimH1pHZFP9IbfzeQzkOSLq9AOM2oKcw/td0V4yM=; b=UYl0byAVzZcqdvXGyAcoREtbJ9eSvOdF3nH5E5Xnq/GPyNL4GsFsH4V4qAHjY3yVEj RgnMTctGjS4WwZ5gqROktVGktbyFJ4h984yx7ElcNAkNnepVxG/Pk7Ba6cHbwmZcsETh +yf55VtRsIMJ6Wx1PcJ0iyxx4wkgX5DGS/2qK1TrTqb80p+uTqrhiR4RwNzesAFr0nUI dmpEJp8maB6+bUVcWmvkLr1LSUN0gwrbjgSvysWiJAwDRQHSHRW/n+fUArHaJ9c9/Wbx GfNdMnUEqMt9ShtZTzs96BbSA8+en92Dw4uk7iu0SbTYKhLwxFUr35X7sjCDDgunShep Sz8g== X-Gm-Message-State: AFq9FYLjBuXB4+IOE9ozENa1w39YppJ2HSo0j8ClFu0ce7ZBAyeQZ2Hx I0OEknOGXzpNwUW1ZfhN5h1wMV6rcfLhhCzfzHxgEAUXTjfHo5jsf4Xx X-Gm-Gg: AYBFou0PTQ4yNQEAV4130l+7jwK3U/aJ+E6+ru/2gMku9+6VCqARWRS6qU81m7GpOAd Zd4nNKpQO+2QQU7A8TQ2HUyfTNokM6lfHZ0EqL16Q8rQCLSWzOV8P+2uExNNF4CvXPyQW7wrluN n86NGC7IMBsMJXhiHzEDzSVqewYc9tzfabgFqxl5NDlmhwTN9XAvjFu0YwHIg4j23P8xSf8hhm9 efkVh8dGKfoXuojSWT+85c/pyWqmZWC075JEANo9YIzjUSesZNMEFOEaTItzB4xB0/OB0tKrMPI 01LPEbZs9e9skJITJaqJBbuQVKCx+tpZJqa1wfharaJVNos7J5ldLa7OoZd2oty/ZGRUKIu1LpZ /ZTo1LE7Sjk8f7aLycQ4YeS94qrJTKN/zDgifkSDzkT3itKyDfJPNsqvb1yay+uHUdyMrbR1T56 dEcsgyPYTR/7YzoE8u2pih5KhVp09A6DVQK4MFNIHO++WuDrRHWGr8yQd592DftkyL7S91qxAMS YZ0Hwte1+mbmvQ3I2ZIlbCmklBwo57fYf06PwZysDqYlCt4a6QeI9B/uQ== X-Received: by 2002:a17:90b:52cd:b0:3ac:9e76:aa96 with SMTP id 98e67ed59e1d1-3adead00d90mr8054345a91.3.1793006049465; Mon, 26 Oct 2026 02:14:09 -0700 (PDT) Received: from [172.31.0.1] ([188.253.12.30]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3adeb83b408sm5525872a91.0.2026.10.26.02.14.07 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 26 Oct 2026 02:14:09 -0700 (PDT) Message-ID: Date: Mon, 26 Oct 2026 17:14:04 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2] gdb: Check bounds before reading DWARF expression operands Content-Language: en-US To: Tom Tromey Cc: gdb-patches@sourceware.org, Simon Marchi , Guinevere Larsen References: <20260805040640.2095812-1-firmiana402@gmail.com> <87ld7oqnt0.fsf@tromey.com> From: Jielun Wu In-Reply-To: <87ld7oqnt0.fsf@tromey.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org Thank you for the review. > It's conventional in C for the end pointer to be one-past-the-end. > [...] > So using "<" seems more correct than "<=" here? For reference, the helper is: > static const gdb_byte * > safe_skip_bytes (const gdb_byte *buf, const gdb_byte *buf_end, > ULONGEST bytes) > { > gdb_assert (buf <= buf_end); > if (bytes > (ULONGEST) (buf_end - buf)) > error (_("DWARF expression error: ran off end of buffer reading bytes")); > return buf + bytes; > } BUF_END is indeed one-past-the-end, but BUF can equal it when an operand is entirely missing. For example, the existing truncated_const1u case contains only DW_OP_const1u. After reading the opcode, op_ptr == op_end, and safe_skip_bytes is called with bytes == 1. The <= assertion lets the subsequent length check report the expected DWARF error; a < assertion would instead trigger an internal error first. Equality also allows a zero-byte skip at the end, so I think we should keep <= here. Jielun