summaryrefslogtreecommitdiff
path: root/libre/shntool
diff options
context:
space:
mode:
Diffstat (limited to 'libre/shntool')
-rw-r--r--libre/shntool/shntool-3.0.10-large-size.diff22
-rw-r--r--libre/shntool/shntool-3.0.10-large-times.diff39
2 files changed, 61 insertions, 0 deletions
diff --git a/libre/shntool/shntool-3.0.10-large-size.diff b/libre/shntool/shntool-3.0.10-large-size.diff
new file mode 100644
index 000000000..539c7fb70
--- /dev/null
+++ b/libre/shntool/shntool-3.0.10-large-size.diff
@@ -0,0 +1,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);
diff --git a/libre/shntool/shntool-3.0.10-large-times.diff b/libre/shntool/shntool-3.0.10-large-times.diff
new file mode 100644
index 000000000..be4716e6b
--- /dev/null
+++ b/libre/shntool/shntool-3.0.10-large-times.diff
@@ -0,0 +1,39 @@
+diff -aur shntool-3.0.10-clean/src/core_mode.c shntool-3.0.10/src/core_mode.c
+--- shntool-3.0.10-clean/src/core_mode.c 2009-03-30 06:55:33.000000000 +0100
++++ shntool-3.0.10/src/core_mode.c 2012-08-11 16:37:58.000000000 +0100
+@@ -310,8 +310,8 @@
+ if (sec >= 60)
+ st_error("invalid value for seconds: [%d]",sec);
+
+- bytes = (wlong)(min * info->rate * 60) +
+- (wlong)(sec * info->rate);
++ bytes = (((wlong)min) * info->rate * 60) +
++ (((wlong)sec) * info->rate);
+
+ return bytes;
+ }
+@@ -358,9 +358,9 @@
+ if (frames >= 75)
+ st_error("invalid value for frames: [%d]",frames);
+
+- bytes = (wlong)(min * CD_RATE * 60) +
+- (wlong)(sec * CD_RATE) +
+- (wlong)(frames * CD_BLOCK_SIZE);
++ bytes = (((wlong)min) * CD_RATE * 60) +
++ (((wlong)sec) * CD_RATE) +
++ (((wlong)frames) * CD_BLOCK_SIZE);
+
+ return bytes;
+ }
+@@ -403,8 +403,8 @@
+
+ nearest_byte = (int)((((double)ms * (double)info->rate) / 1000.0) + 0.5);
+
+- bytes = (wlong)(min * info->rate * 60) +
+- (wlong)(sec * info->rate);
++ bytes = (((wlong)min) * info->rate * 60) +
++ (((wlong)sec) * info->rate);
+
+ if (PROB_NOT_CD(info)) {
+ bytes += nearest_byte;
+