From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-yb1-xb35.google.com (mail-yb1-xb35.google.com [IPv6:2607:f8b0:4864:20::b35]) by sourceware.org (Postfix) with ESMTPS id CF45B3858D28 for ; Mon, 8 Apr 2024 17:40:11 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CF45B3858D28 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 CF45B3858D28 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::b35 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1712598013; cv=none; b=hl8QwQM22QElhN/PIHIKutpnJwTpVtlobbW/W+RxC1rMdSyZ5WpGpq1jnFG0LfOmOxupTaiNl/2XHMX/Tz1cRQkaIWBtch0oWzUuAz4fBvqJWNnoZ6DE/IWv8QsSlTcADsbHqMe5Se+gdqDRgv24F6Fm/+GaT3kjjQjxvTMCg08= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1712598013; c=relaxed/simple; bh=Y6KrsAIDtF4ylbViJeJx0qrzRWcEWEtHYORnTlMjhoU=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=yEpHdk0L+vpp7Vg8NDjhWUValYMGFSwJ23LQYMYKP8gt9y6X4pQ3sK5H7Sowpt1EJCtTiY4pUXK1H2dESECSoQ6+2R1kEq4YoovDURii1B4hw39ULjwDoH5QkeB9VaddIWtfjDY5a04UNWTPSgNaUfpYkl818sajz9KGvCwdBd0= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-yb1-xb35.google.com with SMTP id 3f1490d57ef6-dd10ebcd702so4877451276.2 for ; Mon, 08 Apr 2024 10:40:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1712598011; x=1713202811; darn=sourceware.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=N9TMZ+jnYauODkBJiBhwnZw1cStcQ5enmiOPsWL6r6w=; b=Zg+9LvJyUmC9cYDR3Dh9Bbmj0sbEUMs8iX6L5qKHlBRG+LdK9/1CxeW8ATrtKLXkAt PHPctl875krekZ/qYQ8REeX8Tik0tC9w07bXqH2gRZeTOfQrw2+NsUqnHWBb57dDFf5O 2dafC5hnYc6mAExenyIDs7aK6YCXqk40a8UlGl5aVqtE3QlbVyAyZLaZue0/yi9oqCvu hS/O4Mn4iAjWz2H12xv/keDXeoJ88mxPQ2/98H4HljmePz1RT4posBP4kyjZkmXA6hg2 2rO8jhbTHwjz34934HkGXOuyiweO+B8zR9/yyHvE4x0Xk1dL+hMzG+mFki6Uvr3I00LQ ktdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712598011; x=1713202811; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=N9TMZ+jnYauODkBJiBhwnZw1cStcQ5enmiOPsWL6r6w=; b=DqVp4iFDH0SgKZOxGCdgm9WB5h58oGHNG3vWc4HKJTGz8FizlC8mDq//ciNupscnFd S2r+yVRfEEDsfNLn2ZTkfF50RAI0hSOE4cvXD0LGcXSUrpDRMfyRB40ukw+q3PyPWTfL HaPEBSvcg8jB1i4UXiNgXpTdgqXilFDdvUKI/xrilANX8nZIJvzJAQALq4mD7pm3mFBT oFnjhmlJD4droc455zGa98EVvy5cEgKnj+8WwE/Y9pYsHCe6Q1L/0C3NKsB8QPyAX1o+ yDkEyp/QP9/zoTyfs1FxH0riGMeqKELiWa9gw2zHSeoeKl216LKFiZExJTT/hJIU+8p3 ZEtA== X-Gm-Message-State: AOJu0YwpDyT7UUao1IDSViPQfhPovKH1dpYAs2o0cE0zxCx/IuWg+PMZ N2kWpucK+AWpA89iQIjn4aYWJgl1mXeR4fTViE1X3jmmEsgl18nMyN1lhcnqwPNakE4uRJZxXWq HeqOzIpbo4nJHpiKjOsnQuVCvYjv3+P1LyLY= X-Google-Smtp-Source: AGHT+IFJkov4trQN+0tYTiSmjXpih/M+KNVbIyC1p5WrrWisqsuVw2eTtG3gQ+REsUxJBsmHV/FB/48MjVwV4cAqf7E= X-Received: by 2002:a25:bc86:0:b0:dcf:f78f:a570 with SMTP id e6-20020a25bc86000000b00dcff78fa570mr8201332ybk.7.1712598011213; Mon, 08 Apr 2024 10:40:11 -0700 (PDT) MIME-Version: 1.0 References: <20240408160609.1264205-1-hjl.tools@gmail.com> In-Reply-To: From: "H.J. Lu" Date: Mon, 8 Apr 2024 10:39:35 -0700 Message-ID: Subject: Re: [PATCH] elf: Check objname before calling fatal_error To: Adhemerval Zanella Netto Cc: libc-alpha@sourceware.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-3019.2 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 List-Id: On Mon, Apr 8, 2024 at 10:18=E2=80=AFAM Adhemerval Zanella Netto wrote: > > > > On 08/04/24 13:58, H.J. Lu wrote: > > On Mon, Apr 8, 2024 at 9:47=E2=80=AFAM Adhemerval Zanella Netto > > wrote: > >> > >> > >> > >> On 08/04/24 13:06, H.J. Lu wrote: > >>> _dl_signal_error may be called with objname =3D=3D NULL. _dl_excepti= on_create > >>> checks objname =3D=3D NULL. But fatal_error doesn't. Check objname = before > >>> calling fatal_error. This fixes BZ #31596. > >> > >> Do we have a reproducer for this? The one from BZ#31596 does seems to = trigger > >> it. > > > > We don't. But it may happen in theory. > > Why not add the test on fatal_error instead? Because if we are adding > possible check for argument where we are not sure that it might trigger, > it is clear to me to add where the issue might happen (besides that our > policy is to avoid adding fixes without proper reproducers). void _dl_signal_exception (int errcode, struct dl_exception *exception, const char *occasion) { struct rtld_catch *lcatch =3D get_catch (); if (lcatch !=3D NULL) { *lcatch->exception =3D *exception; *lcatch->errcode =3D errcode; /* We do not restore the signal mask because none was saved. */ __longjmp (lcatch->env[0].__jmpbuf, 1); } else fatal_error (errcode, exception->objname, occasion, exception->errstrin= g); } Will exception->objname ever be NULL? > Also, I think we should close the BZ#31596 as a notabug because the > reproducer does not actually trigger an issue and it is misleading > that this is a glibc issue. > > > > >>> --- > >>> elf/dl-catch.c | 6 +++++- > >>> 1 file changed, 5 insertions(+), 1 deletion(-) > >>> > >>> diff --git a/elf/dl-catch.c b/elf/dl-catch.c > >>> index 2109516dba..8ef7a4c706 100644 > >>> --- a/elf/dl-catch.c > >>> +++ b/elf/dl-catch.c > >>> @@ -126,7 +126,11 @@ _dl_signal_error (int errcode, const char *objna= me, const char *occasion, > >>> __longjmp (lcatch->env[0].__jmpbuf, 1); > >>> } > >>> else > >>> - fatal_error (errcode, objname, occasion, errstring); > >>> + { > >>> + if (objname =3D=3D NULL) > >>> + objname =3D ""; > >>> + fatal_error (errcode, objname, occasion, errstring); > >>> + } > >>> } > >>> rtld_hidden_def (_dl_signal_error) > >>> > > --=20 H.J.