diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c index 151ff1ee852..43eb0cdd61c 100644 --- a/dlls/ntdll/thread.c +++ b/dlls/ntdll/thread.c @@ -1150,7 +1150,7 @@ NTSTATUS WINAPI NtQueryInformationThread( HANDLE handle, THREADINFOCLASS class, if (!status) { if (!(reply->flags & WINE_LDT_FLAGS_ALLOCATED)) - status = STATUS_INVALID_LDT_OFFSET; + status = STATUS_ACCESS_VIOLATION; else { wine_ldt_set_base ( &tdi->Entry, (void *)reply->base ); @@ -1161,7 +1161,9 @@ NTSTATUS WINAPI NtQueryInformationThread( HANDLE handle, THREADINFOCLASS class, } SERVER_END_REQ; } - if (status == STATUS_SUCCESS && ret_len) *ret_len = sizeof(*tdi); + if (status == STATUS_SUCCESS && ret_len) + /* yes, that's a bit strange, but it's the way it is */ + *ret_len = sizeof(LDT_ENTRY); #else status = STATUS_NOT_IMPLEMENTED; #endif diff --git a/server/ptrace.c b/server/ptrace.c index ef72713b55c..26a4042adf3 100644 --- a/server/ptrace.c +++ b/server/ptrace.c @@ -445,7 +445,7 @@ void get_selector_entry( struct thread *thread, int entry, unsigned int *base, } if (entry >= 8192) { - set_error( STATUS_INVALID_PARAMETER ); /* FIXME */ + set_error( STATUS_ACCESS_VIOLATION ); return; } if (suspend_for_ptrace( thread ))