[PATCH v2 4/6] ntdll: Expose ntdll_check_buffer_for_read and ntdll_check_buffer_for_write to Unix libs.
Jacek Caban
jacek at codeweavers.com
Tue Oct 5 14:23:31 CDT 2021
On 10/5/21 9:04 PM, Alexandre Julliard wrote:
> Jacek Caban <jacek at codeweavers.com> writes:
>
>> On 10/5/21 7:56 PM, Alexandre Julliard wrote:
>>> Jacek Caban <jacek at codeweavers.com> writes:
>>>
>>>> Signed-off-by: Jacek Caban <jacek at codeweavers.com>
>>>> ---
>>>> dlls/ntdll/unix/file.c | 6 +++---
>>>> dlls/ntdll/unix/socket.c | 2 +-
>>>> dlls/ntdll/unix/unix_private.h | 2 --
>>>> dlls/ntdll/unix/virtual.c | 16 ++++++++--------
>>>> include/wine/unixlib.h | 2 ++
>>>> 5 files changed, 14 insertions(+), 14 deletions(-)
>>> Is that one also meant to be temporary? That sort of thing should be
>>> handled by the syscall exception handling.
>>
>> I originally solved it with the attached patch (it would need to be
>> changed for _NTSYSTEM_/WINE_UNIX_LIB), does something like that look
>> better? I changed it because I noticed that ntdll uses
>> virtual_check_buffer_for_* instead. Default syscall exception
>> behaviour of returning exception code is not enough in those cases
>> (convert_bitmapinfo callers need to do cleanup and we have a test that
>> NtGdiAddFontMemResourceEx returns 0, not an exception code).
> Yes, I think a real exception handler would be better.
OK, I will prepare a new patch.
> Note that ntdll uses virtual_check_buffer* only when the buffer is
> passed to a server call, since that doesn't trigger an exception; it's
> not something we want to use in general. Triggering an actual exception
> and handling it is preferable.
Oh, I see, that's different.
Thanks,
Jacek
More information about the wine-devel
mailing list