From 41b541d0339e6a949ee32090f6a8c058bdc55502 Mon Sep 17 00:00:00 2001 From: "dveditz%netscape.com" Date: Wed, 6 Nov 2002 05:20:40 +0000 Subject: [PATCH] fix crash in ShellExecute() on some versions of windows (bug 161357) r=mstoltz,sr=darin --- uriloader/exthandler/win/nsOSHelperAppService.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/uriloader/exthandler/win/nsOSHelperAppService.cpp b/uriloader/exthandler/win/nsOSHelperAppService.cpp index 47a61a2c0075..5596782ae0c8 100644 --- a/uriloader/exthandler/win/nsOSHelperAppService.cpp +++ b/uriloader/exthandler/win/nsOSHelperAppService.cpp @@ -224,6 +224,13 @@ NS_IMETHODIMP nsOSHelperAppService::LoadUrl(nsIURI * aURL) nsCAutoString urlSpec; aURL->GetAsciiSpec(urlSpec); + // Some versions of windows (Win2k before SP3, Win XP before SP1) + // crash in ShellExecute on long URLs (bug 161357). + // IE 5 and 6 support URLS of 2083 chars in length, 2K is safe + const PRUint32 maxSafeURL(2048); + if (urlSpec.Length() > maxSafeURL) + return NS_ERROR_FAILURE; + LONG r = (LONG) ::ShellExecute( NULL, "open", urlSpec.get(), NULL, NULL, SW_SHOWNORMAL); if (r < 32) rv = NS_ERROR_FAILURE;