зеркало из https://github.com/mozilla/gecko-dev.git
Bug 340050 r+sr=roc a=schrep Crash in spellchecker checking absurdly long word
This commit is contained in:
Родитель
d15c579c18
Коммит
6682f75979
|
@ -41,6 +41,8 @@
|
|||
#include "mozISpellI18NManager.h"
|
||||
#include "nsIStringEnumerator.h"
|
||||
|
||||
#define UNREASONABLE_WORD_LENGTH 64
|
||||
|
||||
NS_IMPL_ISUPPORTS1(mozSpellChecker, nsISpellChecker)
|
||||
|
||||
mozSpellChecker::mozSpellChecker()
|
||||
|
@ -128,6 +130,14 @@ mozSpellChecker::CheckWord(const nsAString &aWord, PRBool *aIsMisspelled, nsStri
|
|||
PRBool correct;
|
||||
if(!mSpellCheckingEngine)
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
|
||||
// don't bother to check crazy words, also, myspell gets unhappy if you
|
||||
// give it too much data and crashes sometimes
|
||||
if (aWord.Length() > UNREASONABLE_WORD_LENGTH) {
|
||||
*aIsMisspelled = PR_TRUE;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
*aIsMisspelled = PR_FALSE;
|
||||
result = mSpellCheckingEngine->Check(PromiseFlatString(aWord).get(), &correct);
|
||||
NS_ENSURE_SUCCESS(result, result);
|
||||
|
|
Загрузка…
Ссылка в новой задаче