diff -urN liblouis-2.6.2.old/liblouis/compileTranslationTable.c liblouis-2.6.2/liblouis/compileTranslationTable.c --- liblouis-2.6.2.old/liblouis/compileTranslationTable.c 2014-09-02 13:19:23.000000000 +0100 +++ liblouis-2.6.2/liblouis/compileTranslationTable.c 2019-12-05 11:57:39.794000000 +0000 @@ -1836,6 +1823,7 @@ if (!(ch->attributes & CTC_Letter)) { compileError (nested, "a name may contain only letters"); + free(nameRule); return 0; } nameRule->name[k] = name->chars[k]; @@ -4193,7 +4230,7 @@ if (ruleDots.chars[0] == '#') ruleDots.length = ruleDots.chars[0] = 0; else if (ruleDots.chars[0] == '\\' && ruleDots.chars[1] == '#') - memcpy (&ruleDots.chars[0], &ruleDots.chars[1], + memmove (&ruleDots.chars[0], &ruleDots.chars[1], ruleDots.length-- * CHARSIZE); } }