Jinoh Kang (@iamahuman) commented about server/thread.c:
set_error( STATUS_INVALID_PARAMETER ); else if (thread->state != TERMINATED) {
unsigned int ctx = CTX_NATIVE;
const context_t *context = &contexts[CTX_NATIVE];
unsigned int flags = system_flags & context->flags;
unsigned int native_flags = context->flags & req->native_flags;
unsigned int flags = system_flags & contexts[CTX_NATIVE].flags; if (thread != current) stop_thread( thread );
else if (flags) set_thread_context( thread, context, flags );
else if (contexts[CTX_NATIVE].flags) set_thread_context( thread, &contexts[CTX_NATIVE], flags );
```suggestion:-0+0 else if (flags) set_thread_context( thread, &contexts[CTX_NATIVE], flags ); ```
If `contexts[CTX_NATIVE].flags` was nonzero but `SERVER_CTX_DEBUG_REGISTERS` was unset, this will lead to an assertion failure. Guaranteed, such case doesn't happen in tests; however, consistenly using `flags` looks more readable.