From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H2 autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 28493 invoked from network); 28 Nov 2022 19:47:59 -0000 Received: from second.openwall.net (193.110.157.125) by inbox.vuxu.org with ESMTPUTF8; 28 Nov 2022 19:47:59 -0000 Received: (qmail 1063 invoked by uid 550); 28 Nov 2022 19:47:54 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Reply-To: musl@lists.openwall.com Received: (qmail 1024 invoked from network); 28 Nov 2022 19:47:54 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=s31663417; t=1669664860; bh=S0LNJwydewWO4wXiK8pM7Pb73tl56wUjKa6V44+Caz8=; h=X-UI-Sender-Class:Date:From:To:Subject; b=RlB7u4utsl65u0PSalw3U70t0sQBEP5fGkNqpPzVdZdoelrGJhr56UY2s5r3Wv4QF wpmg08H8qYrG9l9HVWX40AzBSWx4A1ZjqcDJt6fU42E9omoeieWPdl4He5sSc4kMik Ml+HU8Cc8vzEYRbiTaV87Scme5VAHGxT0gWzLlxaj0PH/JoiAgaigBQIUXdju/3H/Q WvwUTBokcPlKZobSTauNwNQZk9PMvQTqJa2m86TtTdRnkMlQAGUil18CgcyMnxy+SZ z5/wJXIHwdSHJCFeGDH5aSkipnZlAZts2k1c2PQG9Hna00k7/X7gMRtvUiX4gFBbKV iKU4iBewsJsNg== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Date: Mon, 28 Nov 2022 20:47:40 +0100 From: Markus Wichmann To: musl@lists.openwall.com Message-ID: <20221128194740.GA23755@voyager> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.9.4 (2018-02-28) X-Provags-ID: V03:K1:nnhbqyfQBZqrYac96r0Vt+DvYf6hPsxZJmfQ7OQI6HYoUXH/kVb S7DIC0Z9BhT9N6C3da1qEv3cMQ0PVzvg9qutFI9AUpdl8rmQjn7Cobhij/+8P09A5J5HOaL fnOX4/kTm1n5fWNSQFFlhWaQXbvGYcBKicTVC68bwEHvp6iMTyGJgSZNLAHQ1W9OIAoUI24 i9gwoYBElW2qDbVWBvLDQ== UI-OutboundReport: notjunk:1;M01:P0:mAlpdg3iDkc=;hUBQp7KYWaThhtOfUxx/d+cPdky mW5PeqpAM4cSECZhH0J0m7Ieq+vlmA+9tasHBHh2xiJfQLdC+/OJrJ6Ky2RGggpabwTC4Pigf 58M1N58bKK0ymA2EhzBMc8EWSvDDCZNE84/Q1BHJqdixl2Sm+NL8YmUZ3P7ohy5CwWQUPgMl8 UvIquFUC4EUv8acEpt4hKQ1ZvZoKQ8uaD2Et8uLDQvI1VigQXBmLJ5JbB9ink+tVMAB7QFi59 R7xeSaKg/cRUQT++YwWcdLK2fT8mq/e7My5tIWjsj8iwOg5v4zxoT9iPlMGn2I/gzH1NOs+zX diR7Zg2scoZi6puIsV9WTaV0SNfYMqbOBMo+pYYAZnPp6HRDWibanMFA4cnBggCykIbWMhZa4 K5cl9PrZkY/v9bc6i+y81sa0RIU5I24upISVNPrDLEYgB87FbXKHmH8J768p8gO+XLxkKQu3J /tFrGpXmONKukq/H4zf7+UYJDKG+/BSOq/9Ok1GA/bEubnLDrk6AoZIvmhSfROArhjQFKUZx5 DmdZKR8lvK+tb6+ooKjdaAuwVKiiqbDzo9+KymTrQNXd9HbewrWu9OOI7if1JPES6dXM+Kzlg fw3nR0LTEL56/u4m0T0o5Vqb2OQOI4yPTgGMfQrVle+8DGjIXutRPO519X4r6HMWXINIb2PuZ RF09UADw2AVTarqUiuvB3vivrh2qdfvZ23D08QqIa01cedweeIK8dMZCKq6dyErJPq/3wJU5x cvDC9Leg5BbbfcYGztXrR8vt/pOpgkDdFNTg9zy2YBmGzJTKI9ck0voWlG3G+wmQC2yOLhpzv 73FKPaw85WfJhZ1N+gjsYKu/1xYD8A52oelApFmYg63/vD6721AXWL34FBR7lqSYM7YUwwOVP k9n9tAyOmHKojoODY0PKsgw5yv2A4vKHFnjuJ9uf8uQtQYMsT2NwVvfu4YjRXUlCUvB3oypGe Bg/JDwBakSm4qk6ZHWIMmfGfmUE= Subject: [musl] Invalid page size reference in __dls2 Hi all, __dls2 calls kernel_mapped_dso(), and that one uses the PAGE_SIZE macro. Whenever does not define PAGESIZE, PAGE_SIZE is defined as libc.page_size. That variable is only initialized at the start of __dls3, so the DSO descriptor for libc ends up being wrong. Since the libc object has static storage duration, page_size is initialized with zero. So at least nothing undefined happens. The impact is, it will calculate the relro pointers as being zero, so no relro will happen, and it will calculate maximum and minimum addresses as being zero, therefore setting map to base and map_len to zero. This will cause dladdr() not to find the libc. Yeah, not the biggest of impacts. This, again, affects all architectures that don't define PAGESIZE, so at this time those are aarch64 arm m68k microblaze mips mips64 mipsn32 powerpc powerpc64 riscv64 I don't know whether references to libc are even valid in __dls2, but it is defined as "hidden", so that ought to be good enough. In that case it may be enough to just move the initialization. Otherwise it may be necessary to add page size as parameter to kernel_mapped_dso(). Then __dls2 can look it up in the aux vector at its leisure. Ciao, Markus