mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 13:38:47 +00:00
Copy name in LoadDictionary if not dictionary_name
compiledict.c sets dict_name to dictionary_name if dict_name is not set, and passes that to LoadDictionary. LoadDictionary then copies the passed in name to dictionary_name. This causes -fsanitize=address to fail with overlapping memory addresses passed to strncpy (copying the string to itself). As such, don't copy the name in this case.
This commit is contained in:
@@ -212,7 +212,8 @@ int LoadDictionary(Translator *tr, const char *name, int no_error)
|
||||
int size;
|
||||
char fname[sizeof(path_home)+20];
|
||||
|
||||
strncpy(dictionary_name, name, 40); // currently loaded dictionary name
|
||||
if (dictionary_name != name)
|
||||
strncpy(dictionary_name, name, 40); // currently loaded dictionary name
|
||||
strncpy(tr->dictionary_name, name, 40);
|
||||
|
||||
// Load a pronunciation data file into memory
|
||||
|
||||
Reference in New Issue
Block a user