From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com [IPv6:2a00:1450:4864:20::234]) by sourceware.org (Postfix) with ESMTPS id ACDAC3858C2C for ; Tue, 21 Dec 2021 14:20:58 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org ACDAC3858C2C Received: by mail-lj1-x234.google.com with SMTP id v15so21758160ljc.0 for ; Tue, 21 Dec 2021 06:20:58 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=IjyOPyE1+LcnR4ipMcT+TaFk6NoyzKEAfBnBb+zaVeE=; b=tx9AaIpdbPBKrTfE5AH1ikCJNmXkanR83d+8toFmtpwkoMAFw+jt/lvjRmB4omjfpi 0FK9v6hpDD5+8H7kAubpInhTZgBz9UHaaPCA/1+369DINou5uZWe9CV5rKOFKuqR5psK Py1ZigYeKwPxpdtEB6mdohYcqD1bD8TnmGv7HLaSPRmj+yj/ITQX4KAOnxKc7t3BumJY e07a63aY2XQPhP+FIDZWIJIB/znD/iZuPBKN7RaprjncrO2Zk7+SzUDQb3cJyjULLNYy j+EgXLOs0Y4U5AsBLuHDDIcDnmanRySQYWBPWNqstCKOucztuKw/+i6VI7Slf4DB4c/W RXLA== X-Gm-Message-State: AOAM531Fve1HTXCGN70Q1uAkoRISP1x422JH5wsrSrmF6wIPILTYzu9L Qab45xQvsrx4dNErxmYzgWQx X-Google-Smtp-Source: ABdhPJwHW1rnZ4XYKUzD36sp6bbj2c9xq/2M8RafODQaFJLtLyVv7IYlRHS31SeXxhGgwcjZiLVkbQ== X-Received: by 2002:a2e:920a:: with SMTP id k10mr2693321ljg.234.1640096457550; Tue, 21 Dec 2021 06:20:57 -0800 (PST) Received: from [192.168.0.135] ([185.30.228.158]) by smtp.gmail.com with ESMTPSA id e17sm2725261lfr.296.2021.12.21.06.20.56 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 21 Dec 2021 06:20:56 -0800 (PST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.7\)) Subject: Re: [TCWG CI] Regression caused by binutils: Fix an undefined behaviour in the BFD library's DWARF parser. From: Maxim Kuvyrkov In-Reply-To: <1686945914.6118.1639941676362@jenkins.jenkins> Date: Tue, 21 Dec 2021 17:20:56 +0300 Cc: gcc-regression@gcc.gnu.org Content-Transfer-Encoding: quoted-printable Message-Id: <7DA11ADD-CF85-4060-9024-D89C8085C401@linaro.org> References: <1686945914.6118.1639941676362@jenkins.jenkins> To: Nikita Popov X-Mailer: Apple Mail (2.3608.120.23.2.7) X-Spam-Status: No, score=-11.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_LOTSOFHASH, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-regression@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-regression mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Dec 2021 14:21:00 -0000 Hi Nikita, This was sent out due to a bug in our CI. Sorry for the noise. Regards, -- Maxim Kuvyrkov https://www.linaro.org > On 19 Dec 2021, at 22:21, ci_notify@linaro.org wrote: >=20 > [TCWG CI] Regression caused by binutils: Fix an undefined behaviour in = the BFD library's DWARF parser.: > commit 4d3605c8ca92bcde848581a8ec031827c798501b > Author: Nikita Popov >=20 > Fix an undefined behaviour in the BFD library's DWARF parser. >=20 > Results regressed to > # reset_artifacts: > -10 > # build_abe binutils: > -9 > # build_abe stage1 -- --set = gcc_override_configure=3D--disable-libsanitizer --set = gcc_override_configure=3D--disable-multilib --set = gcc_override_configure=3D--with-cpu=3Dcortex-m4 --set = gcc_override_configure=3D--with-mode=3Dthumb --set = gcc_override_configure=3D--with-float=3Dhard: > -8 > # build_abe newlib: > -6 > # build_abe stage2 -- --set = gcc_override_configure=3D--disable-libsanitizer --set = gcc_override_configure=3D--disable-multilib --set = gcc_override_configure=3D--with-cpu=3Dcortex-m4 --set = gcc_override_configure=3D--with-mode=3Dthumb --set = gcc_override_configure=3D--with-float=3Dhard: > -5 > # benchmark -- -Os_mthumb = artifacts/build-4d3605c8ca92bcde848581a8ec031827c798501b/results_id: > 1 >=20 > from > # reset_artifacts: > -10 > # build_abe binutils: > -9 > # build_abe stage1 -- --set = gcc_override_configure=3D--disable-libsanitizer --set = gcc_override_configure=3D--disable-multilib --set = gcc_override_configure=3D--with-cpu=3Dcortex-m4 --set = gcc_override_configure=3D--with-mode=3Dthumb --set = gcc_override_configure=3D--with-float=3Dhard: > -8 > # build_abe newlib: > -6 > # build_abe stage2 -- --set = gcc_override_configure=3D--disable-libsanitizer --set = gcc_override_configure=3D--disable-multilib --set = gcc_override_configure=3D--with-cpu=3Dcortex-m4 --set = gcc_override_configure=3D--with-mode=3Dthumb --set = gcc_override_configure=3D--with-float=3Dhard: > -5 > # benchmark -- -Os_mthumb artifacts/build-baseline/results_id: > 1 >=20 > THIS IS THE END OF INTERESTING STUFF. BELOW ARE LINKS TO BUILDS, = REPRODUCTION INSTRUCTIONS, AND THE RAW COMMIT. >=20 > This commit has regressed these CI configurations: > - tcwg_bmk_gnu_eabi_stm32/gnu_eabi-master-arm_eabi-coremark-Os >=20 > First_bad build: = https://ci.linaro.org/job/tcwg_bmk_ci_gnu_eabi-bisect-tcwg_bmk_stm32-gnu_e= abi-master-arm_eabi-coremark-Os/15/artifact/artifacts/build-4d3605c8ca92bc= de848581a8ec031827c798501b/ > Last_good build: = https://ci.linaro.org/job/tcwg_bmk_ci_gnu_eabi-bisect-tcwg_bmk_stm32-gnu_e= abi-master-arm_eabi-coremark-Os/15/artifact/artifacts/build-161e87d12167b1= e36193385485c1f6ce92f74f02/ > Baseline build: = https://ci.linaro.org/job/tcwg_bmk_ci_gnu_eabi-bisect-tcwg_bmk_stm32-gnu_e= abi-master-arm_eabi-coremark-Os/15/artifact/artifacts/build-baseline/ > Even more details: = https://ci.linaro.org/job/tcwg_bmk_ci_gnu_eabi-bisect-tcwg_bmk_stm32-gnu_e= abi-master-arm_eabi-coremark-Os/15/artifact/artifacts/ >=20 > Reproduce builds: > > mkdir investigate-binutils-4d3605c8ca92bcde848581a8ec031827c798501b > cd investigate-binutils-4d3605c8ca92bcde848581a8ec031827c798501b >=20 > # Fetch scripts > git clone https://git.linaro.org/toolchain/jenkins-scripts >=20 > # Fetch manifests and test.sh script > mkdir -p artifacts/manifests > curl -o artifacts/manifests/build-baseline.sh = https://ci.linaro.org/job/tcwg_bmk_ci_gnu_eabi-bisect-tcwg_bmk_stm32-gnu_e= abi-master-arm_eabi-coremark-Os/15/artifact/artifacts/manifests/build-base= line.sh --fail > curl -o artifacts/manifests/build-parameters.sh = https://ci.linaro.org/job/tcwg_bmk_ci_gnu_eabi-bisect-tcwg_bmk_stm32-gnu_e= abi-master-arm_eabi-coremark-Os/15/artifact/artifacts/manifests/build-para= meters.sh --fail > curl -o artifacts/test.sh = https://ci.linaro.org/job/tcwg_bmk_ci_gnu_eabi-bisect-tcwg_bmk_stm32-gnu_e= abi-master-arm_eabi-coremark-Os/15/artifact/artifacts/test.sh --fail > chmod +x artifacts/test.sh >=20 > # Reproduce the baseline build (build all pre-requisites) > ./jenkins-scripts/tcwg_bmk-build.sh @@ = artifacts/manifests/build-baseline.sh >=20 > # Save baseline build state (which is then restored in = artifacts/test.sh) > mkdir -p ./bisect > rsync -a --del --delete-excluded --exclude /bisect/ --exclude = /artifacts/ --exclude /binutils/ ./ ./bisect/baseline/ >=20 > cd binutils >=20 > # Reproduce first_bad build > git checkout --detach 4d3605c8ca92bcde848581a8ec031827c798501b > ../artifacts/test.sh >=20 > # Reproduce last_good build > git checkout --detach 161e87d12167b1e36193385485c1f6ce92f74f02 > ../artifacts/test.sh >=20 > cd .. > >=20 > Full commit (up to 1000 lines): > > commit 4d3605c8ca92bcde848581a8ec031827c798501b > Author: Nikita Popov > Date: Wed Dec 15 17:49:06 2021 +0000 >=20 > Fix an undefined behaviour in the BFD library's DWARF parser. >=20 > PR 28687 > * dwarf1.c (parse_die): Fix undefined behaviour in range = tests. > --- > bfd/ChangeLog | 5 +++++ > bfd/dwarf1.c | 6 ++---- > 2 files changed, 7 insertions(+), 4 deletions(-) >=20 > diff --git a/bfd/ChangeLog b/bfd/ChangeLog > index 35b659b4ef9..24311710088 100644 > --- a/bfd/ChangeLog > +++ b/bfd/ChangeLog > @@ -1,3 +1,8 @@ > +2021-12-15 Nikita Popov > + > + PR 28687 > + * dwarf1.c (parse_die): Fix undefined behaviour in range tests. > + > 2021-11-17 Nick Clifton >=20 > PR 28452 > diff --git a/bfd/dwarf1.c b/bfd/dwarf1.c > index f1c4e7ec48c..9f4665501b4 100644 > --- a/bfd/dwarf1.c > +++ b/bfd/dwarf1.c > @@ -258,8 +258,7 @@ parse_die (bfd * abfd, > if (xptr + 2 <=3D aDiePtrEnd) > { > block_len =3D bfd_get_16 (abfd, xptr); > - if (xptr + block_len > aDiePtrEnd > - || xptr + block_len < xptr) > + if ((unsigned int) (aDiePtrEnd - xptr) < block_len) > return false; > xptr +=3D block_len; > } > @@ -269,8 +268,7 @@ parse_die (bfd * abfd, > if (xptr + 4 <=3D aDiePtrEnd) > { > block_len =3D bfd_get_32 (abfd, xptr); > - if (xptr + block_len > aDiePtrEnd > - || xptr + block_len < xptr) > + if ((unsigned int) (aDiePtrEnd - xptr) < block_len) > return false; > xptr +=3D block_len; > } >