From 4591b3f2fbe1acb8a42a8f06444c50b5083498b1 Mon Sep 17 00:00:00 2001 From: Erik de Castro Lopo Date: Thu, 3 Sep 2015 14:51:20 +1000 Subject: [PATCH] test_seeking: Fix undefined behaviour --- src/test_seeking/main.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/test_seeking/main.c b/src/test_seeking/main.c index 6a0228c9..7956b4a2 100644 --- a/src/test_seeking/main.c +++ b/src/test_seeking/main.c @@ -175,10 +175,13 @@ static FLAC__bool read_pcm_(FLAC__int32 *pcm[], const char *rawfilename, const c } else { /* bps == 16 */ unsigned char c[2]; + uint16_t value; for(i = 0; i < samples; i++) { for(j = 0; j < channels; j++) { - if (fread(&c, 1, 2, f) == 2) - pcm[j][i] = ((int)((signed char)c[0])) << 8 | (int)c[1]; + if (fread(&c, 1, 2, f) == 2) { + value = (c[0] << 8) | c[1]; + pcm[j][i] = value & 0x8000 ? 0xffff0000 | value : value; + } } } }