From patchwork Wed Aug 30 01:54:34 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Modra X-Patchwork-Id: 74938 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 2FD293856943 for ; Wed, 30 Aug 2023 01:55:54 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2FD293856943 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1693360554; bh=qrTN6H1JQDFk9OyOOwGFEVaayD3gzBeWJ3e69uFYOG4=; h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=Fl3FV7aReNTcv1+PBw9EDnQUqCsRw+2oWJxOLR1fOLCzDPrGpDTGYlaMNueJU06Wc dfPSprFHpgb74ITwlG7zaUxNtBuizGx54tENDIJ0X9LtasLhvc+D8jXZAEvG48Ook/ rcnR3DzAIjrN8LKUwt5QnouhUQXhlIS/1S7qB37k= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-oo1-xc36.google.com (mail-oo1-xc36.google.com [IPv6:2607:f8b0:4864:20::c36]) by sourceware.org (Postfix) with ESMTPS id F3D8E3858D35 for ; Wed, 30 Aug 2023 01:54:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org F3D8E3858D35 Received: by mail-oo1-xc36.google.com with SMTP id 006d021491bc7-5734b893a11so2864962eaf.1 for ; Tue, 29 Aug 2023 18:54:38 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693360478; x=1693965278; h=content-disposition:mime-version:message-id:subject:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=qrTN6H1JQDFk9OyOOwGFEVaayD3gzBeWJ3e69uFYOG4=; b=OPQixxBAI1BFGs58IzuNAs7USuuybw9+XLO1UaCMErbkebqM1OkEVb5heCi887Ft79 yl8kiSBjgmqegjWj60yxxG7ui1VrFG3eNrF4dvYcKFs3u6BRLqzodA3C21sOL9lzx+Uo UdPpntmnGIP/XaxX8St7A5vsbGK61w08JODOaoNwAahYRbLZ7+rNLVB0DzAzriJsgpw6 oc67V5UNr1DHz2ineslmZnmYFJ4AyD0tKU3Rt0NiV53NUkI9lspRytWdZ/Lc4zpsAH8D tjYzQfF1MtTdOrvmxDg7Bnvo1br7wp4JoZyTvNsE7CxcuWnYqZPSJG+Rfe5Jz0VS7GkH K/ww== X-Gm-Message-State: AOJu0Yzvf7wLEhtGaaDHQHoMIlVW43bH7p6pB9bmFO7hOobQrItQAZxF 0UWewpjkwzp6JYcVP3vUgCNJvSyM8eA= X-Google-Smtp-Source: AGHT+IHoPT34VpEz0cnKoj+X4DRetYwXbermzeuZh/ynExghO/38zI5ogreHV5lBci+l0s3cUGjr/w== X-Received: by 2002:a54:4e14:0:b0:3a7:6532:75f3 with SMTP id a20-20020a544e14000000b003a7653275f3mr843066oiy.46.1693360477925; Tue, 29 Aug 2023 18:54:37 -0700 (PDT) Received: from squeak.grove.modra.org (158.106.96.58.static.exetel.com.au. [58.96.106.158]) by smtp.gmail.com with ESMTPSA id f23-20020aa782d7000000b006829969e3b0sm9044466pfn.85.2023.08.29.18.54.37 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 29 Aug 2023 18:54:37 -0700 (PDT) Received: by squeak.grove.modra.org (Postfix, from userid 1000) id 5FED811425B6; Wed, 30 Aug 2023 11:24:34 +0930 (ACST) Date: Wed, 30 Aug 2023 11:24:34 +0930 To: binutils@sourceware.org Subject: binutils/dwarf.c abbrev list leak Message-ID: MIME-Version: 1.0 Content-Disposition: inline X-Spam-Status: No, score=-3034.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Alan Modra via Binutils From: Alan Modra Reply-To: Alan Modra Errors-To: binutils-bounces+patchwork=sourceware.org@sourceware.org Sender: "Binutils" * dwarf.c (process_debug_info): Call free_abrev_list on return paths. diff --git a/binutils/dwarf.c b/binutils/dwarf.c index 80bbc547bb1..9e22a74209e 100644 --- a/binutils/dwarf.c +++ b/binutils/dwarf.c @@ -3997,7 +3997,11 @@ process_debug_info (struct dwarf_section * section, } } if (dwarf_start_die != 0 && level < saved_level) - return true; + { + if (list != NULL) + free_abbrev_list (list); + return true; + } continue; } @@ -4038,6 +4042,8 @@ process_debug_info (struct dwarf_section * section, } warn (_("DIE at offset %#lx refers to abbreviation number %lu which does not exist\n"), die_offset, abbrev_number); + if (list != NULL) + free_abbrev_list (list); return false; }