From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ot1-x32d.google.com (mail-ot1-x32d.google.com [IPv6:2607:f8b0:4864:20::32d]) by sourceware.org (Postfix) with ESMTPS id 395803858D38 for ; Tue, 6 Jun 2023 19:45:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 395803858D38 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linaro.org Received: by mail-ot1-x32d.google.com with SMTP id 46e09a7af769-6b251ef7b77so1371344a34.0 for ; Tue, 06 Jun 2023 12:45:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1686080726; x=1688672726; h=content-transfer-encoding:in-reply-to:organization:from:references :to:content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=pKy59fqXpS/nC7l5pL5vvRQpLhFT271qXbfyELb9zR0=; b=k5PV/VIdgJZQw3c51u+kn2t6N3QiU51i2B0EAFCKJpGlIYdB+95whdn+aSJJ68qYmk bMp2HBnCMegAT19NsdCj/9gNbmQaAcK9C34p01ncP59B7aitLMXZTjryo0hRtQ+2mFg8 /5XXXaK+obTGi+DVbHa0+spYXwAEYUiPxhCqDkMMFMC9kzCe2cu6QohgTXeQQ1WgE2uu QuQo7KOOBgvECgzXSOHqLuRGpfhjY1ITbG9AzhbCAEr94KENRiG+AhKKEeETxWtX4FuQ 0QFriYoOTk2vWDDZlQYzBbKd52rY7A5od40zEjCLQ8q3qPiNLv9je43/GiT5KJnFY8Xt ze8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686080726; x=1688672726; h=content-transfer-encoding:in-reply-to:organization:from:references :to:content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=pKy59fqXpS/nC7l5pL5vvRQpLhFT271qXbfyELb9zR0=; b=ISvcZRYsvujgEi00K9aglzY/8U8vJx6Bojq52DNz8/hhR5+9qkJgXNOjpcEx66qE0H kvlE1nLqAXoSSGCqVubjqRVy/f2ZMdKmUjU3xq3jJ5j3qusZN2WRELL8nefzM6yPCBIU 1lNA/wftV79fcU+55k3GyNnntyDX6h0d54srs2j8n1rYhq8AObMhCrC2MXhK8cVtVWwp 3BLFOvQ14bZsMgV2XA6t9oPwvfmfo/KnKcwUtlP4ixwbJsImkXZXPI0jTF/GWmggsK0V kbhhfF71zK/ZZohdHprTORfnDbn7cEbXg6YFEXM73Qn/zvIYt215WU8TVRTkytGxrB2T lyBw== X-Gm-Message-State: AC+VfDyrUxT+Dl4p5UiRO8o52NPGVDuBWkH3xzGq3X/FN021imu4HMZq 1TIq/b0QI+8xDeZznydxbnNXEnRvFD8WjHiYLzFgKw== X-Google-Smtp-Source: ACHHUZ7x0Wx2wYT4blGLcdiaK2JHHN/UBIoFzzdgZ2iETMrl8gDvATYtkSHzHV3B4ZcxQUIEEJAbMA== X-Received: by 2002:a05:6830:3:b0:6b1:53c7:a5f1 with SMTP id c3-20020a056830000300b006b153c7a5f1mr4325891otp.1.1686080726115; Tue, 06 Jun 2023 12:45:26 -0700 (PDT) Received: from ?IPV6:2804:1b3:a7c1:fe49:38b3:aa90:a7ed:3fef? ([2804:1b3:a7c1:fe49:38b3:aa90:a7ed:3fef]) by smtp.gmail.com with ESMTPSA id l17-20020a9d7a91000000b006af7580c84csm4684402otn.60.2023.06.06.12.45.24 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 06 Jun 2023 12:45:25 -0700 (PDT) Message-ID: <522b3b30-2e6d-3e00-1561-0e1bd55d70b2@linaro.org> Date: Tue, 6 Jun 2023 16:45:23 -0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.11.2 Subject: Re: [PATCH] elf: _dl_find_object may return 1 during early startup (bug 30515) Content-Language: en-US To: libc-alpha@sourceware.org, Florian Weimer References: <877cshzzmz.fsf@oldenburg.str.redhat.com> From: Adhemerval Zanella Netto Organization: Linaro In-Reply-To: <877cshzzmz.fsf@oldenburg.str.redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,NICE_REPLY_A,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE 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 05/06/23 12:40, Florian Weimer via Libc-alpha wrote: > Success is reported with a 0 return value, and failure is -1. > Enhance the kitchen sink test elf/tst-audit28 to cover > _dl_find_object as well. > > Fixes commit 5d28a8962dcb ("elf: Add _dl_find_object function") > and bug 30515. > > Tested on x86_64-linux-gnu. > > --- > elf/dl-find_object.c | 2 +- > elf/tst-auditmod28.c | 9 +++++++++ > 2 files changed, 10 insertions(+), 1 deletion(-) > > diff --git a/elf/dl-find_object.c b/elf/dl-find_object.c > index 928eb499cc..c1390ee10f 100644 > --- a/elf/dl-find_object.c > +++ b/elf/dl-find_object.c > @@ -46,7 +46,7 @@ _dl_find_object_slow (void *pc, struct dl_find_object *result) > struct dl_find_object_internal internal; > _dl_find_object_from_map (l, &internal); > _dl_find_object_to_external (&internal, result); > - return 1; > + return 0; > } > > /* Object not found. */ Ok. > diff --git a/elf/tst-auditmod28.c b/elf/tst-auditmod28.c > index f6ab991398..ae9c277f5b 100644 > --- a/elf/tst-auditmod28.c > +++ b/elf/tst-auditmod28.c > @@ -71,6 +71,15 @@ la_version (unsigned int current) > TEST_VERIFY (dladdr1 (&_exit, &info, &extra_info, RTLD_DL_LINKMAP) != 0); > TEST_VERIFY (extra_info == handle); > > + /* Check _dl_find_object. */ > + struct dl_find_object dlfo; > + TEST_COMPARE (_dl_find_object (__builtin_return_address (0), &dlfo), 0); > + TEST_COMPARE_STRING (basename (dlfo.dlfo_link_map->l_name), LD_SO); Unfortunately this fails with --enable-hardcoded-path-in-tests, since the INTERP will be set to ld.so: x86_64-linux-gnu$ readelf -p .interp elf/tst-audit28 String dump of section '.interp': [ 0] [...]/x86_64-linux-gnu/elf/ld.so x86_64-linux-gnu$ make test t=elf/tst-audit28 [...] FAIL: elf/tst-audit28 original exit status 1 tst-auditmod28.c:77: error: string comparison failed left string: 5 bytes right string: 20 bytes left (evaluated from basename (dlfo.dlfo_link_map->l_name)): "ld.so" 6C 64 2E 73 6F right (evaluated from LD_SO): "ld-linux-x86-64.so.2" 6C 64 2D 6C 69 6E 75 78 2D 78 38 36 2D 36 34 2E 73 6F 2E 32 [...] Maybe add a check for either ld.so or LD_SO. > + TEST_COMPARE (_dl_find_object (dlsym (handle, "environ"), &dlfo), 0); > + TEST_COMPARE_STRING (basename (dlfo.dlfo_link_map->l_name), LIBC_SO); > + TEST_COMPARE (_dl_find_object ((void *) 1, &dlfo), -1); > + TEST_COMPARE (_dl_find_object ((void *) -1, &dlfo), -1); > + > /* Verify that dlmopen creates a new namespace. */ > void *dlmopen_handle = xdlmopen (LM_ID_NEWLM, LIBC_SO, RTLD_NOW); > TEST_VERIFY (dlmopen_handle != handle); > > base-commit: 7f0d9e61f40c669fca3cfd1e342fa8236c7220b7 >