[ros-dev] [ros-diffs] [jgardou] 64537: [NTOS/MM] - Do not assert in case of stack overflow, just let the page fault handler raise STATUS_STACK_OVERFLOW

Alex Ionescu ionucu at videotron.ca
Sun Oct 12 04:15:32 UTC 2014


You're supposed to now make the guard page valid, as per the comment.
Otherwise you'll keep faulting on it.

Best regards,
Alex Ionescu

On Sat, Oct 11, 2014 at 2:32 PM, Timo Kreuzer <timo.kreuzer at web.de> wrote:

>
> From what I read the page fault handler will not retry in a loop, but
> raise a usermode exception. Or am I missing something here?
>
> Am 11.10.2014 18:34, schrieb Alex Ionescu:
>
> Timo, if you don't make the guard page valid, you'll just loop forever...
> how is that better than an ASSERT? :-)
>
> Best regards,
> Alex Ionescu
>
> On Mon, Oct 6, 2014 at 3:21 PM, Timo Kreuzer <timo.kreuzer at web.de> wrote:
>
>>
>> Well, an ASSERT is supposed to assert something. If it get's triggered,
>> there's obviously something wrong. Putting an ASSERT that is known to be
>> (potentially) triggered defies the purpose of an ASSERT. For example it
>> doesn't make sense to ASSERT that a usermode caller doesn't pass a certain
>> flag. A BSOD is not the solution to currently mot having implemented
>> something. A DPRINT1 will do just fine (if we finally stopped DPRINTing all
>> sorts of crap, creating MBs of debuglogs that noone can analyze, and
>> instead added DPRINTs in places where it actually makes sense </rant>)
>> So the ASSERT should be replaced with a DPRINT1.
>>
>> Timo
>>
>> Am 06.10.2014 17:29, schrieb Alex Ionescu:
>>
>>  The ASSERT is there because of the missing functionality. Please see
>> the comment just above.
>>
>> Best regards,
>> Alex Ionescu
>>
>> On Sun, Oct 5, 2014 at 2:57 AM, <jgardou at svn.reactos.org> wrote:
>>
>>> Author: jgardou
>>> Date: Sun Oct  5 09:57:02 2014
>>> New Revision: 64537
>>>
>>> URL: http://svn.reactos.org/svn/reactos?rev=64537&view=rev
>>> Log:
>>> [NTOS/MM]
>>>  - Do not assert in case of stack overflow, just let the page fault
>>> handler raise STATUS_STACK_OVERFLOW
>>>
>>> Modified:
>>>     trunk/reactos/ntoskrnl/mm/ARM3/pagfault.c
>>>
>>> Modified: trunk/reactos/ntoskrnl/mm/ARM3/pagfault.c
>>> URL:
>>> http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/ARM3/pagfault.c?rev=64537&r1=64536&r2=64537&view=diff
>>>
>>> ==============================================================================
>>> --- trunk/reactos/ntoskrnl/mm/ARM3/pagfault.c   [iso-8859-1] (original)
>>> +++ trunk/reactos/ntoskrnl/mm/ARM3/pagfault.c   [iso-8859-1] Sun Oct  5
>>> 09:57:02 2014
>>> @@ -82,7 +82,6 @@
>>>      {
>>>          /* We don't -- Windows would try to make this guard page valid
>>> now */
>>>          DPRINT1("Close to our death...\n");
>>> -        ASSERT(FALSE);
>>>          return STATUS_STACK_OVERFLOW;
>>>      }
>>>
>>>
>>>
>>>
>>
>>
>>  _______________________________________________
>> Ros-dev mailing listRos-dev at reactos.orghttp://www.reactos.org/mailman/listinfo/ros-dev
>>
>>
>>
>> _______________________________________________
>> Ros-dev mailing list
>> Ros-dev at reactos.org
>> http://www.reactos.org/mailman/listinfo/ros-dev
>>
>>
>
>
> _______________________________________________
> Ros-dev mailing listRos-dev at reactos.orghttp://www.reactos.org/mailman/listinfo/ros-dev
>
>
>
> _______________________________________________
> Ros-dev mailing list
> Ros-dev at reactos.org
> http://www.reactos.org/mailman/listinfo/ros-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.reactos.org/pipermail/ros-dev/attachments/20141011/bce6e988/attachment.html>


More information about the Ros-dev mailing list