New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 826564 link

Starred by 1 user

Issue metadata

Status: Untriaged
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug-Regression



Sign in to add a comment

crashpad: WinHttpCrackUrl fails during upload on Windows 7

Project Member Reported by marshall@chromium.org, Mar 28 2018

Issue description

Chrome Version: M65 and newer, master revision 66afc5e5 (#540276)
OS: Windows 7 32-bit and Windows Server 2008

What steps will reproduce the problem?
(1) Configure Crashpad in a Chromium-based application with a server URL like "http://localhost:8080".
(2) Load chrome://crash

What is the expected result?
The crash report should upload successfully.

What happens instead?
The crash report fails to upload.

HTTPTransportWin::ExecuteSynchronously bails out early because WinHttpCrackUrl [1] returns false. The input url value is "http://localhost:8080?guid=022a68ea-169f-4324-981c-1300dc19ccdc". GetLastError() returns a value of 12005 (ERROR_INTERNET_INVALID_URL).

[1] https://cs.chromium.org/chromium/src/third_party/crashpad/crashpad/util/net/http_transport_win.cc?type=cs&q=WinHttpCrackUrl&l=173

Please use labels and text to provide additional information.
The problem does not reproduce on Windows 8.1 and newer.
 
Removing the query parameters by commenting out the if(options_.identify_client_via_url) block in CrashReportUploadThread::UploadReport fixes the problem.

Comment 2 by mark@chromium.org, Mar 28 2018

Cc: rmargold@chromium.org

Comment 3 by mark@chromium.org, Mar 28 2018

Roman, this was your feature. Do you have any thoughts?

Marshall, what happens if the server URL from url() has a trailing slash? Then we’d wind up passing something like http://localhost:8080/?guid=… to WinHttpCrackUrl(). Does that help?

WinHttpCrackUrl() is supposed to be able to understand query strings, so there may just be something small about the URL that it doesn’t like before Windows 8 that we can deal with. That’s what makes me think we might want to try an extra slash.

We also haven’t seen this (even on Windows 7) with pretty much any URL, although I don’t think anybody’s tested anything that doesn’t have any path in it at all as you’re doing.
@comment#3: Thanks for the suggestion. Adding a forward slash (http://localhost:8080/?guid=…) also fixes the problem.

Sign in to add a comment