From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1792) id 3D2153858C32; Sat, 23 Mar 2024 22:16:21 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 3D2153858C32 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1711232181; bh=AJ0BpfT5nsVREBALgRlunzojvuaAfLxSINMlV9ZpTUw=; h=From:To:Subject:Date:From; b=MiBYuRXRI3JIr2EWCYAC7htWgfggWn3LV8pPzapMzANuLQRcOdl/gxuSUgnTBzD6H fY6sP8SypFj/YFM2Oav3lPD4wnFGV5pu/psOB0D6eStSs0cbfkiiaWLcWOMFpj8IZ+ KPA/QJ9fQWgy2YXf1hgKhukE8ZMzRs3W0yrGtkUE= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Samuel Thibault To: glibc-cvs@sourceware.org Subject: [glibc] hurd: Stop relying on VM_MAX_ADDRESS X-Act-Checkin: glibc X-Git-Author: Sergey Bugaev X-Git-Refname: refs/heads/master X-Git-Oldrev: 7f02511e5b8879430e2b3c51601341d3c0314071 X-Git-Newrev: 4648bfbbde5466929d24013478697cbdec847b46 Message-Id: <20240323221621.3D2153858C32@sourceware.org> Date: Sat, 23 Mar 2024 22:16:21 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=4648bfbbde5466929d24013478697cbdec847b46 commit 4648bfbbde5466929d24013478697cbdec847b46 Author: Sergey Bugaev Date: Sat Mar 23 20:32:43 2024 +0300 hurd: Stop relying on VM_MAX_ADDRESS We'd like to avoid committing to a specific size of virtual address space (i.e. the value of VM_AARCH64_T0SZ) on AArch64. While the current version of GNU Mach still exports VM_MAX_ADDRESS for compatibility, we should try to avoid relying on it when we can. This piece of logic in _hurdsig_getenv () doesn't actually care about the size of user- accessible virtual address space, it just wants to preempt faults on any addresses starting from the value of the P pointer and above. So, use (unsigned long int) -1 instead of VM_MAX_ADDRESS. While at it, change the casts to (unsigned long int) and not just (long int), since the type of struct hurd_signal_preemptor.{first,last} is unsigned long int. Signed-off-by: Sergey Bugaev Message-ID: <20240323173301.151066-3-bugaevc@gmail.com> Diff: --- hurd/hurdsig.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/hurd/hurdsig.c b/hurd/hurdsig.c index 882a03471d..8b1928d1a1 100644 --- a/hurd/hurdsig.c +++ b/hurd/hurdsig.c @@ -1658,8 +1658,8 @@ _hurdsig_getenv (const char *variable) while (*ep) { const char *p = *ep; - _hurdsig_fault_preemptor.first = (long int) p; - _hurdsig_fault_preemptor.last = VM_MAX_ADDRESS; + _hurdsig_fault_preemptor.first = (unsigned long int) p; + _hurdsig_fault_preemptor.last = (unsigned long int) -1; if (! strncmp (p, variable, len) && p[len] == '=') { size_t valuelen; @@ -1671,8 +1671,8 @@ _hurdsig_getenv (const char *variable) memcpy (value, p, valuelen); break; } - _hurdsig_fault_preemptor.first = (long int) ++ep; - _hurdsig_fault_preemptor.last = (long int) (ep + 1); + _hurdsig_fault_preemptor.first = (unsigned long int) ++ep; + _hurdsig_fault_preemptor.last = (unsigned long int) (ep + 1); } _hurdsig_end_catch_fault (); return value;