Browse Source

Check malloc/realloc in the flag_stdin codepath of espeak-ng.c.

master
Reece H. Dunn 9 years ago
parent
commit
a64e048c51
1 changed files with 10 additions and 2 deletions
  1. 10
    2
      src/espeak-ng.c

+ 10
- 2
src/espeak-ng.c View File

@@ -721,7 +721,10 @@ int main(int argc, char **argv)
espeak_Synth(p_text, size+1, 0, POS_CHARACTER, 0, synth_flags, NULL, NULL);
} else if (flag_stdin) {
int max = 1000;
p_text = (char *)malloc(max);
if ((p_text = (char *)malloc(max)) == NULL) {
espeak_ng_PrintStatusCodeMessage(ENOMEM, stderr, NULL);
exit(EXIT_FAILURE);
}

if (flag_stdin == 2) {
// line by line input on stdin
@@ -737,7 +740,12 @@ int main(int argc, char **argv)
p_text[ix++] = fgetc(stdin);
if (ix >= (max-1)) {
max += 1000;
p_text = (char *)realloc(p_text, max);
char *new_text = (char *)realloc(p_text, max);
if (new_text == NULL) {
free(p_text);
espeak_ng_PrintStatusCodeMessage(ENOMEM, stderr, NULL);
exit(EXIT_FAILURE);
}
}
}
if (ix > 0) {

Loading…
Cancel
Save