Browse Source

encoding.c: Don't crash when passing a NULL string to LookupMnem.

master
Reece H. Dunn 8 years ago
parent
commit
887b1c837f
2 changed files with 3 additions and 2 deletions
  1. 1
    1
      src/libespeak-ng/mnemonics.c
  2. 2
    1
      tests/encoding.c

+ 1
- 1
src/libespeak-ng/mnemonics.c View File

int LookupMnem(MNEM_TAB *table, const char *string) int LookupMnem(MNEM_TAB *table, const char *string)
{ {
while (table->mnem != NULL) { while (table->mnem != NULL) {
if (strcmp(string, table->mnem) == 0)
if (string && strcmp(string, table->mnem) == 0)
return table->value; return table->value;
table++; table++;
} }

+ 2
- 1
tests/encoding.c View File

void void
test_unknown_encoding() test_unknown_encoding()
{ {
printf("testing unknown encoding\n");
printf("testing unknown encodings\n");


assert(espeak_ng_EncodingFromName(NULL) == ESPEAKNG_ENCODING_UNKNOWN);
assert(espeak_ng_EncodingFromName("") == ESPEAKNG_ENCODING_UNKNOWN); assert(espeak_ng_EncodingFromName("") == ESPEAKNG_ENCODING_UNKNOWN);
assert(espeak_ng_EncodingFromName("abcxyz") == ESPEAKNG_ENCODING_UNKNOWN); assert(espeak_ng_EncodingFromName("abcxyz") == ESPEAKNG_ENCODING_UNKNOWN);
assert(espeak_ng_EncodingFromName("US") == ESPEAKNG_ENCODING_UNKNOWN); // wrong case assert(espeak_ng_EncodingFromName("US") == ESPEAKNG_ENCODING_UNKNOWN); // wrong case

Loading…
Cancel
Save