diff --git a/src/libespeak-ng/compiledata.c b/src/libespeak-ng/compiledata.c index 46c48a55..9e5eab6f 100644 --- a/src/libespeak-ng/compiledata.c +++ b/src/libespeak-ng/compiledata.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include @@ -1310,10 +1311,16 @@ static int LoadWavefile(FILE *f, const char *fname) // data contains: 4 bytes of length (n_samples * 2), followed by 2-byte samples (lsb byte first) length = Read4Bytes(f); - while (!feof(f)) { - c1 = fgetc(f); - c3 = fgetc(f); - if (feof(f)) break; + while (true) { + int c; + + if ((c = fgetc(f)) == EOF) + break; + c1 = (unsigned char)c; + + if ((c = fgetc(f)) == EOF) + break; + c3 = (unsigned char)c; c2 = c3 << 24; c2 = c2 >> 16; // sign extend