From b24db06a849f4b65c954485ffb4c736d0c711a88 Mon Sep 17 00:00:00 2001 From: "Reece H. Dunn" Date: Thu, 22 Mar 2018 19:41:32 +0000 Subject: [PATCH] Copy name to tr->dictionary_name if not equal This is a similar change to b60d2452c34ac6ebf01a3c09c17193b8c8e2a3fd. In this case, it is when tr->dictionary_name is passed as the name parameter in LoadDictionary. This happens in the SetTranslator2 function when loading the dictionary for the second language translator object. --- src/libespeak-ng/dictionary.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/libespeak-ng/dictionary.c b/src/libespeak-ng/dictionary.c index 5d1f44ba..afc59efd 100644 --- a/src/libespeak-ng/dictionary.c +++ b/src/libespeak-ng/dictionary.c @@ -214,7 +214,8 @@ int LoadDictionary(Translator *tr, const char *name, int no_error) if (dictionary_name != name) strncpy(dictionary_name, name, 40); // currently loaded dictionary name - strncpy(tr->dictionary_name, name, 40); + if (tr->dictionary_name != name) + strncpy(tr->dictionary_name, name, 40); // Load a pronunciation data file into memory // bytes 0-3: offset to rules data