Paul Gofman (@gofman) commented about server/process.c:
+ } + + while (ptr) + { + process = LIST_ENTRY( ptr, struct process, entry ); + if ((reply->handle = alloc_handle( current->process, process, req->access, req->attributes ))) + break; + ptr = req->flags ? list_prev( &process_list, &process->entry ) + : list_next( &process_list, &process->entry ); + } + + if (!reply->handle) + set_error( STATUS_NO_MORE_ENTRIES ); + + if (process) + release_object( process ); This release_object is off, it looks like for the only case when you are trying to reference the process above there is already matching release.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/4611#note_55171