Robert Shearman rob@codeweavers.com writes:
+tryagain:
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;}
This is worse, now you are also skipping the initializations that SERVER_START_REQ does. When retrying you really need to end the first request properly and restart a new request from scratch.