Robert Shearman rob@codeweavers.com writes:
+tryagain:
SERVER_START_REQ( get_token_groups ) {
TOKEN_GROUPS *tgroups = tokeninfo;SID_IDENTIFIER_AUTHORITY sid = {SECURITY_NT_AUTHORITY};
TOKEN_GROUPS *groups = tokeninfo;
/* we need to show admin privileges ! */tgroups->GroupCount = 1;tgroups->Groups->Attributes = SE_GROUP_ENABLED;RtlAllocateAndInitializeSid( &sid,2,SECURITY_BUILTIN_DOMAIN_RID,DOMAIN_ALIAS_RID_ADMINS,0, 0, 0, 0, 0, 0,&(tgroups->Groups->Sid));
req->handle = token;wine_server_set_reply( req, buffer, server_buf_len );status = wine_server_call( req );if (status == STATUS_BUFFER_TOO_SMALL){if (buffer == stack_buffer)buffer = RtlAllocateHeap(GetProcessHeap(), 0, reply->user_len);elsebuffer = RtlReAllocateHeap(GetProcessHeap(), 0, buffer, reply->user_len);if (!buffer) return STATUS_NO_MEMORY;server_buf_len = reply->user_len;goto tryagain;
You shouldn't return or goto out of a SERVER_START_REQ block. SERVER_END_REQ currently doesn't do much, but that could change.