summaryrefslogtreecommitdiff
path: root/libre/shntool/shntool-3.0.10-large-size.diff
blob: 539c7fb7059548119fa2f48c98a4b61b92f5ccc7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
diff -aur shntool-3.0.10-clean/src/core_fileio.c shntool-3.0.10-size/src/core_fileio.c
--- shntool-3.0.10-clean/src/core_fileio.c	2009-03-11 17:18:01.000000000 +0000
+++ shntool-3.0.10-size/src/core_fileio.c	2012-08-11 17:20:14.000000000 +0100
@@ -110,10 +110,16 @@
   buf[4] = 0;
 
   if (be_val)
-    *be_val = (buf[0] << 24) | (buf[1] << 16) | (buf[2] << 8) | buf[3];
+    *be_val = (((unsigned long)buf[0]) << 24)
+              | (((unsigned long)buf[1]) << 16)
+              | (((unsigned long)buf[2]) << 8)
+              | ((unsigned long)buf[3]);
 
   if (le_val)
-    *le_val = (buf[3] << 24) | (buf[2] << 16) | (buf[1] << 8) | buf[0];
+    *le_val = (((unsigned long)buf[3]) << 24)
+              | (((unsigned long)buf[2]) << 16)
+              | (((unsigned long)buf[1]) << 8)
+              | ((unsigned long)buf[0]);
 
   if (tag_val)
     tagcpy(tag_val,buf);