Deutsch English Français Italiano |
<vsmg8a$16gr3$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail From: BGB <cr88192@gmail.com> Newsgroups: comp.arch Subject: Re: Constant Stack Canaries Date: Thu, 3 Apr 2025 12:22:57 -0500 Organization: A noiseless patient Spider Lines: 32 Message-ID: <vsmg8a$16gr3$1@dont-email.me> References: <vsbcnl$1d4m5$1@dont-email.me> <vsc058$20pih$1@dont-email.me> <4cf60b5fd8b785feb07a67a823cc349d@www.novabbs.org> <vseeen$l4ig$1@dont-email.me> <vseiq9$qndj$1@dont-email.me> <e05e9d429f71944bbfe74c3f54b79a03@www.novabbs.org> <vseojq$112f7$1@dont-email.me> <62b5c4a25d917c5bab64a815189de826@www.novabbs.org> <vshf6a$3smcv$1@dont-email.me> <21397906a7a77c2d43191fdaab98a3c9@www.novabbs.org> <jwv4iz75l6k.fsf-monnier+comp.arch@gnu.org> <vsidun$sput$2@dont-email.me> <jwvtt752vg1.fsf-monnier+comp.arch@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Thu, 03 Apr 2025 19:24:26 +0200 (CEST) Injection-Info: dont-email.me; posting-host="a7d2e5b2e6e147929ab1679437fac851"; logging-data="1262435"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/Om3ytXbGsp9cDVtxbz+Y/paJ28EH7wQo=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:uBtC84Wan4txeLVeTDHQoQrRKgY= Content-Language: en-US In-Reply-To: <jwvtt752vg1.fsf-monnier+comp.arch@gnu.org> Bytes: 2746 On 4/3/2025 9:09 AM, Stefan Monnier wrote: > BGB [2025-04-01 23:19:11] wrote: >> But, yeah, inter-process function pointers aren't really a thing, and should >> not be a thing. > > AFAIK, this point was brought in the context of a shared address space > (I assumed it was some kind of SASOS situation, but the same thing > happens with per-thread data inside a POSIX-style process). > Function pointers are perfectly normal and common in data (even tho they > may often be implicit, e.g. within the method table of objects), and the > whole point of sharing an address space is to be able to exchange data. > Or, to allow for NOMMU operation, or reduce costs by not having context switches result in as large of numbers of TLB misses. Also makes the kernel simpler as it doesn't need to deal with each process having its own address space. Some data sharing is used for IPC, but directly sharing function pointers between processes, or local memory (stack, malloc, etc), is not allowed. Though, things may change later, there is a plan to more to separate global/local address ranges. Likely things like code will remain in the shared range, and program data will be in the local range. > > Stefan