diff --git a/layout/html/forms/src/nsFormFrame.cpp b/layout/html/forms/src/nsFormFrame.cpp index ce8ab1c9f3f6..df97b1b83a3e 100644 --- a/layout/html/forms/src/nsFormFrame.cpp +++ b/layout/html/forms/src/nsFormFrame.cpp @@ -1319,15 +1319,24 @@ nsFormFrame::GetContentType(char* aPathName, char** aContentType) if (aPathName && *aPathName) { // Get file extension and mimetype from that.g936 - char* fileExt = &aPathName[nsCRT::strlen(aPathName)-1]; - while (fileExt && (*fileExt != '.')) { - fileExt--; + char* fileExt = aPathName + nsCRT::strlen(aPathName); + while (fileExt > aPathName) { + if (*(--fileExt) == '.') { + break; + } } - if (fileExt) { - nsCOMPtr MIMEService (do_GetService(NS_MIMESERVICE_CONTRACTID, &rv)); - if (NS_FAILED(rv)) return rv; - if (NS_SUCCEEDED(MIMEService->GetTypeFromExtension(++fileExt, aContentType))) - return NS_OK; + + if (*fileExt == '.' && *(fileExt + 1)) { + nsCOMPtr MIMEService = + do_GetService(NS_MIMESERVICE_CONTRACTID, &rv); + if (NS_FAILED(rv)) + return rv; + + rv = MIMEService->GetTypeFromExtension(fileExt + 1, aContentType); + + if (NS_SUCCEEDED(rv)) { + return NS_OK; + } } } *aContentType = nsCRT::strdup("application/octet-stream");