diff options
author | Marius Bakke <[email protected]> | 2020-01-03 19:41:05 +0100 |
---|---|---|
committer | Marius Bakke <[email protected]> | 2020-01-03 19:41:05 +0100 |
commit | 982eff9e841f3539e4ecf93669435a290bfde571 (patch) | |
tree | b1e3f6fc85c6c35c264f091eb2fc5cff8514c230 /gnu/packages/patches/audiofile-fix-sign-conversion.patch | |
parent | 7ba6d70e4528201151195e1ed2175ee4828bdb2f (diff) | |
parent | 7158fe4ded47a599ceb8d556132ba83fcc686962 (diff) |
Merge branch 'master' into staging
Diffstat (limited to 'gnu/packages/patches/audiofile-fix-sign-conversion.patch')
-rw-r--r-- | gnu/packages/patches/audiofile-fix-sign-conversion.patch | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/gnu/packages/patches/audiofile-fix-sign-conversion.patch b/gnu/packages/patches/audiofile-fix-sign-conversion.patch new file mode 100644 index 0000000000..648161d620 --- /dev/null +++ b/gnu/packages/patches/audiofile-fix-sign-conversion.patch @@ -0,0 +1,26 @@ +Based on (hunk for changelog removed) +From b62c902dd258125cac86cd2df21fc898035a43d3 Mon Sep 17 00:00:00 2001 +From: Michael Pruett <[email protected]> +Date: Mon, 29 Aug 2016 23:08:26 -0500 +Subject: [PATCH] Fix undefined behavior in sign conversion. + + +--- + ChangeLog | 5 +++++ + libaudiofile/modules/SimpleModule.h | 3 ++- + 2 files changed, 7 insertions(+), 1 deletion(-) + +diff --git a/libaudiofile/modules/SimpleModule.h b/libaudiofile/modules/SimpleModule.h +index 03c6c69..bad85ad 100644 +--- a/libaudiofile/modules/SimpleModule.h ++++ b/libaudiofile/modules/SimpleModule.h +@@ -123,7 +123,8 @@ struct signConverter + typedef typename IntTypes<Format>::UnsignedType UnsignedType; + + static const int kScaleBits = (Format + 1) * CHAR_BIT - 1; +- static const int kMinSignedValue = -1 << kScaleBits; ++ static const int kMaxSignedValue = (((1 << (kScaleBits - 1)) - 1) << 1) + 1; ++ static const int kMinSignedValue = -kMaxSignedValue - 1; + + struct signedToUnsigned : public std::unary_function<SignedType, UnsignedType> + { |