wininet: Remove custom content-length/type headers from redirects.
diff --git a/dlls/wininet/http.c b/dlls/wininet/http.c
index c47a994..3f50d5c 100644
--- a/dlls/wininet/http.c
+++ b/dlls/wininet/http.c
@@ -2861,10 +2861,13 @@
*/
static BOOL HTTP_HandleRedirect(LPWININETHTTPREQW lpwhr, LPCWSTR lpszUrl)
{
+ static const WCHAR szContentType[] = {'C','o','n','t','e','n','t','-','T','y','p','e',0};
+ static const WCHAR szContentLength[] = {'C','o','n','t','e','n','t','-','L','e','n','g','t','h',0};
LPWININETHTTPSESSIONW lpwhs = lpwhr->lpHttpSession;
LPWININETAPPINFOW hIC = lpwhs->lpAppInfo;
BOOL using_proxy = hIC->lpszProxy && hIC->lpszProxy[0];
WCHAR path[INTERNET_MAX_URL_LENGTH];
+ int index;
if(lpszUrl[0]=='/')
{
@@ -3051,6 +3054,14 @@
}
}
+ /* Remove custom content-type/length headers on redirects. */
+ index = HTTP_GetCustomHeaderIndex(lpwhr, szContentType, 0, TRUE);
+ if (0 <= index)
+ HTTP_DeleteCustomHeader(lpwhr, index);
+ index = HTTP_GetCustomHeaderIndex(lpwhr, szContentLength, 0, TRUE);
+ if (0 <= index)
+ HTTP_DeleteCustomHeader(lpwhr, index);
+
return TRUE;
}