mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-10-31 13:38:47 +00:00
Fix a null pointer dereference in DoVoiceChange(synthesize.c). [Coverity]
This commit is contained in:
@@ -20,6 +20,7 @@
|
||||
#include "config.h"
|
||||
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
#include <math.h>
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
@@ -1061,16 +1062,17 @@ void DoSonicSpeed(int value)
|
||||
}
|
||||
#endif
|
||||
|
||||
void DoVoiceChange(voice_t *v)
|
||||
espeak_ng_STATUS DoVoiceChange(voice_t *v)
|
||||
{
|
||||
// allocate memory for a copy of the voice data, and free it in wavegenfill()
|
||||
voice_t *v2;
|
||||
|
||||
v2 = (voice_t *)malloc(sizeof(voice_t));
|
||||
if ((v2 = (voice_t *)malloc(sizeof(voice_t))) == NULL)
|
||||
return ENOMEM;
|
||||
memcpy(v2, v, sizeof(voice_t));
|
||||
wcmdq[wcmdq_tail][0] = WCMD_VOICE;
|
||||
wcmdq[wcmdq_tail][2] = (intptr_t)v2;
|
||||
WcmdqInc();
|
||||
return ENS_OK;
|
||||
}
|
||||
|
||||
void DoEmbedded(int *embix, int sourceix)
|
||||
|
||||
@@ -82,7 +82,7 @@ const char *SelectVoice(espeak_VOICE *voice_select, int *found);
|
||||
espeak_VOICE *SelectVoiceByName(espeak_VOICE **voices, const char *name);
|
||||
voice_t *LoadVoice(const char *voice_name, int control);
|
||||
voice_t *LoadVoiceVariant(const char *voice_name, int variant);
|
||||
void DoVoiceChange(voice_t *v);
|
||||
espeak_ng_STATUS DoVoiceChange(voice_t *v);
|
||||
void WVoiceChanged(voice_t *wvoice);
|
||||
void WavegenSetVoice(voice_t *v);
|
||||
void ReadTonePoints(char *string, int *tone_pts);
|
||||
|
||||
Reference in New Issue
Block a user