diff --git a/dlls/winhttp/handle.c b/dlls/winhttp/handle.c index aa980ed0fd9..6026a496103 100644 --- a/dlls/winhttp/handle.c +++ b/dlls/winhttp/handle.c @@ -89,9 +89,10 @@ void release_object( object_header_t *hdr ) HINTERNET alloc_handle( object_header_t *hdr ) { object_header_t **p; - ULONG_PTR handle = 0, num; + ULONG_PTR handle, num; list_init( &hdr->children ); + hdr->handle = NULL; EnterCriticalSection( &handle_cs ); if (!max_handles) @@ -112,11 +113,12 @@ HINTERNET alloc_handle( object_header_t *hdr ) if (handles[handle]) ERR("handle isn't free but should be\n"); handles[handle] = addref_object( hdr ); + hdr->handle = (HINTERNET)(handle + 1); while ((next_handle < max_handles) && handles[next_handle]) next_handle++; end: LeaveCriticalSection( &handle_cs ); - return hdr->handle = (HINTERNET)(handle + 1); + return hdr->handle; } BOOL free_handle( HINTERNET hinternet )