[ros-dev] Re: [ros-svn] [weiden] 13138: implemented the ProcessSessionInformation information class

Royce Mitchell III royce3 at ev1.net
Thu Jan 20 00:05:50 CET 2005


Joseph Galbraith wrote:

> Hartmut Birr wrote:
>
>> weiden at svn.reactos.com schrieb:
>>
>>> implemented the ProcessSessionInformation information class
>>>
>>>
>>> Updated files:
>>> trunk/reactos/ntoskrnl/ps/process.c
>>
>>
>> I think that some parts of your implementation are incorrect. The 
>> function must check for the location of the buffer and the previous 
>> mode. If the previous mode is user mode, the buffer must be located 
>> within the user address space. IMHO using of  MmCopyFrom/ToCaller is 
>> better than using an exception block. It is also true for your 
>> following commits.
>
>
> Do MmCopyFrom/ToCaller use SEH?
>
> If not, both are necessary.  Using SEH protects from another
> thread in the process (or some other component) free the VM
> page and cause a crash.
>
> So not only must the address be checked to make sure it
> is a user mode address iff the caller is user mode, but
> the parameter need to be copied using SEH; otherwise
> what was just probed as valid may become invalid before
> the copy can be done.

Yes... and no...

our exception handler has a special-case for MmCopyFrom/MmCopyTo.

The upshot is that those two functions have SEH without explicitly 
needing to setup an SEH frame for it.


More information about the Ros-dev mailing list