On Fri, May 6, 2016 at 10:58 PM, Rob Landley <[email protected]> wrote: > On 05/07/2016 12:16 AM, Evgenii Stepanov wrote: >> Sorry, I did not look at the problem hard enough. >> The real issue is interaction of this code with safestack >> (http://clang.llvm.org/docs/SafeStack.html), which splits the stack in >> 2 disjoint memory regions. If the two variables are allocated on >> different stacks, the comparison result is truly undefined. >> >> I don't really understand what this code is tying to do. Is it >> catching unlimited stack growth? Why does the comment speak about >> heap? > > It's a heuristic that enables an optimization. You could select > CONFIG_TOYBOX_NORECURSE to disable this optimization.
i thought we were still using that, but it looks like i undid my setting of that option here: https://googleplex-android.git.corp.google.com/platform/external/toybox/+/a729fc8373ade0ced1cd0dd5ad43ef6a61a5cd24 https://android-review.googlesource.com/223514 (unsubmitted) turns it back on, since that might be easier than trying to come up with a heuristic that works well in a SafeStack world. as long as we're still using mksh i don't think it matters much anyway. > The help text of that option describes it a little: when one toybox > command calls another, it can either recurse into the new command's > main() function, or call the actual execve() to relaunch the toybox > binary with a fresh environment. Recursing is much faster, but has the > downside that if you do enough in a row you tend to accumulate debris > (open filehandles and unfreed mallocs and such from being halfway > through another program). (Plus if you do it _forever_, you'll actualy > run out of stack.) So it checks how much stack we've used as a simple > heuristic to see whether we should recurse or should exec. > > This heuristic has not been particularly tuned, that's one of my toysh > todo items. (toysh is likely to be the heaviest user.) > > Rob -- Elliott Hughes - http://who/enh - http://jessies.org/~enh/ Android native code/tools questions? Mail me/drop by/add me as a reviewer. _______________________________________________ Toybox mailing list [email protected] http://lists.landley.net/listinfo.cgi/toybox-landley.net
