Date: Fri, 12 Jul 2002 18:27:02 -0700 From: Terry Lambert <tlambert2@mindspring.com> To: Peter Wemm <peter@wemm.org> Cc: Yar Tikhiy <yar@comp.chem.msu.su>, hackers@freebsd.org Subject: Re: Large variables on stack Message-ID: <3D2F81E6.3879BDE6@mindspring.com> References: <20020712233330.9259A3811@overcee.wemm.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Peter Wemm wrote: > > Note that this assumes none of the stack is used elsewhere; in the > > kernel example, ther is slightly over 3K used, on average, by the > > time you get to run. > > FWIW; This isn't correct for -current anymore. We have about 7.6K > of kernel stack now, and a guard page below it to force a double fault > in case of an oveflow. The pcb is above the kernel stack now, and the > user area is completely seperate. That's a valid correction, though it's probably a mistake to take it as meaningful to the base question. I was aware that that had been changed in -current; I didn't know if auto-grow was supported (I thought it wasn't), and it wasn't a general answer (I probably should have not added the parenthetical aside about the FreeBSD specific 64MB user stack limit, actually). The point was supposed to be that if the question was asked in the context of wanting to use a lot of stack space, then there was a fundamental flaw in the design of the code involved. In general, it's bad to use stack if the only reason you are using it is to seperate context, which is the point I was trying to make. OpenSSL takes this one level worse, and uses stack to avoid the allocation and deallocation of context structures that are copies of context structures translated to parameters, and back (one could make a similar criticism of the FreeBSD VFS descriptor mechanism, but at least there was a valid design reason for that one 8-)). I guess I could offer the alternative argument that buffers that are allocated on the stack are subject to overflow in order to get malicious code to execute... and that avoiding such allocations makes such attacks much harder. The stack is really a necessary evil to handle the call graph; abusing it for other reasons makes my teeth itch. 8-). -- Terry To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3D2F81E6.3879BDE6>