--- mozilla/mozilla/extensions/spellcheck/hunspell/src/hashmgr.cpp.orig 2011-04-07 13:32:26.620874806 +0400 +++ mozilla/mozilla/extensions/spellcheck/hunspell/src/hashmgr.cpp 2011-04-07 13:32:29.690879309 +0400 @@ -182,13 +182,14 @@ int al, const char * desc, bool onlyupcase) { bool upcasehomonym = false; - int descl = desc ? (aliasm ? sizeof(short) : strlen(desc) + 1) : 0; + int descl = desc ? (aliasm ? sizeof(char *) : strlen(desc) + 1) : 0; // variable-length hash record with word and optional fields struct hentry* hp = (struct hentry *) malloc (sizeof(struct hentry) + wbl + descl); if (!hp) return 1; char * hpw = &(hp->word); - strcpy(hpw, word); + memcpy(hpw, word, wbl); + hpw[wbl] = 0; if (ignorechars != NULL) { if (utf8) { remove_ignored_chars_utf(hpw, ignorechars_utf16, ignorechars_utf16_len);