Erik: As discussed, added explicit request for check of the backtrack stack limit to Push operations. Enforces check often enough to avoid undetected overflows. Could you check just this change?
http://codereview.chromium.org/17416/diff/245/250 File src/regexp-macro-assembler-ia32.cc (right): http://codereview.chromium.org/17416/diff/245/250#newcode694 Line 694: // If returned value is non-zero, the stack guard reports the actual Since we never push more than a few registers and then call a C function, which will need to do its own checking if it does anything complex, no. We should, however, check after allocating space for the registers. If there are many registers, it could potentially cause a stack overflow, but that's only necessary to do once. http://codereview.chromium.org/17416/diff/245/251 File src/regexp-macro-assembler-ia32.h (right): http://codereview.chromium.org/17416/diff/245/251#newcode142 Line 142: // Adds code that loads the character at the given offset from the On 2009/01/09 10:34:58, Erik Corry wrote: > That loads n characters... > Actually the other comments don't have the 'Add code that...' prefix. Should > probably be made consistent. Done. http://codereview.chromium.org/17416/diff/245/254 File src/regexp-stack.cc (right): http://codereview.chromium.org/17416/diff/245/254#newcode63 Line 63: size = RoundUpToPowerOf2(size); On 2009/01/09 10:34:58, Erik Corry wrote: > I see no need to round up. On the contrary if we ever move to a growth factor > that is not 2 then it could cause confusion, esp one that is less than 2. Done. http://codereview.chromium.org/17416/diff/245/255 File src/regexp-stack.h (right): http://codereview.chromium.org/17416/diff/245/255#newcode90 Line 90: limit_(reinterpret_cast<Address>(kMemoryTop)) {} Sadly, I was not allowed to initialize a constant to a pointer type. http://codereview.chromium.org/17416/diff/245/257 File test/cctest/test-regexp.cc (right): http://codereview.chromium.org/17416/diff/245/257#newcode680 Line 680: reinterpret_cast<void*>(const_cast<T**>(input))), I wasn't allowed to cast directly from one pointer-to-pointer type to another. Which makes me think: Should I really be using static_cast instead? http://codereview.chromium.org/17416 --~--~---------~--~----~------------~-------~--~----~ v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev -~----------~----~----~----~------~----~------~--~---
