src/flac/encode.c: Fix undefined behaviour

Patch-from: lvqcl <lvqcl.mail@gmail.com>
diff --git a/src/flac/encode.c b/src/flac/encode.c
index d313f23..5408548 100644
--- a/src/flac/encode.c
+++ b/src/flac/encode.c
@@ -2420,12 +2420,11 @@
 			unsigned b;
 			for(b = sample = wide_sample = 0; wide_sample < wide_samples; wide_sample++)
 				for(channel = 0; channel < channels; channel++, sample++) {
-					FLAC__int32 t;
+					uint32_t t;
 					t  = ubuffer.u8[b++]; t <<= 8;
 					t |= ubuffer.u8[b++]; t <<= 8;
 					t |= ubuffer.u8[b++];
-					t -= 0x800000;
-					out[channel][wide_sample] = t;
+					out[channel][wide_sample] = (FLAC__int32)t - 0x800000;
 				}
 		}
 		else {