diff options
-rw-r--r-- | libre/shntool/shntool-3.0.10-large-size.diff | 22 | ||||
-rw-r--r-- | libre/shntool/shntool-3.0.10-large-times.diff | 39 |
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; + |