From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-yw1-x112f.google.com (mail-yw1-x112f.google.com [IPv6:2607:f8b0:4864:20::112f]) by sourceware.org (Postfix) with ESMTPS id BF2463857434 for ; Sun, 22 May 2022 18:54:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org BF2463857434 Received: by mail-yw1-x112f.google.com with SMTP id 00721157ae682-2f83983782fso128048927b3.6 for ; Sun, 22 May 2022 11:54:40 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=8ukqN7VAfCFe+1SOJ4qi2ayWn7HUX153C8L5orwB3fk=; b=R8rIgA7DphrE6sq9iKi5iaOoPJ+Dysq9hY9HB83RjEo6cJ7lNA34yYTRuWWGN7d1Wp ryyP9dLixfjBX8n97zm8IEU4jqEWXK+ipvXRH8k1Z1c/mIRwb16wJDwu2yySAa1xjXxW j/MHaFiie1+FrZGdRNdOmBZbLWMli3nhNd7hyxYCuMrgQAmCDdh/2YmJooqH/AbXr89M evUBTfjLjj7OkguURfpL0UrpdHMBcIKnpr5ItgiOxpJXLa9LnxCzLOvNsKu79neLfDo0 K+BJRHOezWyqQAC7x0LwcPAZQQfaEvcNcYMrMFn6shQHi2deq6NcpTIzx4axUhePf/YH SV6A== X-Gm-Message-State: AOAM530BXEZZdzwa0pjvNEORRTWpSJCSnmtgW47LNPVYJAyjrWQwKEnA fWL4nME+jAuXmSqlqGutd46g3wK7t3NxjgQYCkEX2+anT0th3Q== X-Google-Smtp-Source: ABdhPJwAbVuvPgbcP9cbht4UX1rkRU6Sbns8M0hRVUcq2HkLZK2cY4nC0hNSZVs+AzyQ9zU8LBCk2oLo7AWTRm1LDY0= X-Received: by 2002:a0d:dec5:0:b0:2fe:cbcb:fc7b with SMTP id h188-20020a0ddec5000000b002fecbcbfc7bmr20234526ywe.263.1653245680064; Sun, 22 May 2022 11:54:40 -0700 (PDT) MIME-Version: 1.0 References: <20220520083507.2368165-1-maskray@google.com> <87y1yw2sir.fsf@mid.deneb.enyo.de> In-Reply-To: <87y1yw2sir.fsf@mid.deneb.enyo.de> From: =?UTF-8?B?RsSBbmctcnXDrCBTw7JuZw==?= Date: Sun, 22 May 2022 11:54:28 -0700 Message-ID: Subject: Re: [PATCH] dlsym: Make RTLD_NEXT prefer default version definition [#BZ #14932] To: Florian Weimer Cc: Adhemerval Zanella via Libc-alpha , Adhemerval Zanella Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-17.4 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, ENV_AND_HDR_SPF_MATCH, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, USER_IN_DEF_DKIM_WL, USER_IN_DEF_SPF_WL 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: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 May 2022 18:54:42 -0000 On Fri, May 20, 2022 at 7:22 AM Florian Weimer wrote: > > * Adhemerval Zanella via Libc-alpha: > > > On 20/05/2022 05:35, Fangrui Song via Libc-alpha wrote: > >> When the first object providing foo defines both foo@v1 and foo@@v2, > >> dlsym(RTLD_NEXT, "foo") returns foo@v1 while dlsym(RTLD_DEFAULT, "foo") > >> returns foo@@v2. The issue is that RTLD_DEFAULT use the > >> DL_LOOKUP_RETURN_NEWEST flag while RTLD_NEXT doesn't. Fix the RTLD_NEXT > >> branch to use DL_LOOKUP_RETURN_NEWEST. > > > > I am afraid we will need to add a compat dlsym for this change. > > My working theory is dlsym with RTLD_NEXT with a versioned symbol is > so buggy that this is not needed. I want to understand the nature of > the bug, and plan to post a write-up. Ok, thanks. FWIW: I have verified that on FreeBSD 13.1, both dlsym(RTLD_NEXT, "foo") and dlsym(RTLD_DEFAULT, "foo") resolve to the default version definition, like what this patch does.