Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!uwm.edu!gem.mps.ohio-state.edu!apple!snorkelwacker!think!kulla!barmar From: barmar@kulla (Barry Margolin) Newsgroups: comp.std.c Subject: Re: Out-of-bounds pointers Message-ID: <30994@news.Think.COM> Date: 17 Oct 89 16:25:50 GMT References: <868@crdos1.crd.ge.COM> <217@bbxsda.UUCP> <1989Oct7.131404.656@jarvis.csri.toronto.edu> <220@bbxsda.UUCP> <1989Oct10.163732.3241@jarvis.csri.toronto.edu> <240@bbxsda.UUCP> <252@bbxsda.UUCP> Sender: news@Think.COM Organization: Thinking Machines Corporation, Cambridge MA, USA Lines: 17 In article <252@bbxsda.UUCP> scott@bbxsda.UUCP (Scott Amspoker) writes: >While I fully agree that a pointer to "expired" stack data is to >be considered "invalid" I am not aware of any implementation that >actually removes stack memory from the memory map upon exit from >a procedure. Multics truncates the stack segment to the page containing the current frame whenever the process goes blocked. It's a system call so you're in the kernel already, and blocks usually wait for a long time (most blocking is for keyboard input), so the expense is not very significant. The benefit is that the extra pages needn't be swapped out, so the next page fault(s) will be faster, and less swap space is used. Barry Margolin, Thinking Machines Corp. barmar@think.com {uunet,harvard}!think!barmar