diff options
author | Mathieu Othacehe <m.othacehe@gmail.com> | 2019-12-31 11:04:51 +0100 |
---|---|---|
committer | Mathieu Othacehe <m.othacehe@gmail.com> | 2019-12-31 11:04:51 +0100 |
commit | ce9383c090fff90acb3a555d0ccfe12d791fef17 (patch) | |
tree | 7b9cce156799486b94e4f3e55b03831638e73465 /gnu/packages/patches/audiofile-fix-sign-conversion.patch | |
parent | 91be09de61c277d0f1b26cefcefcd0a7fae2e00d (diff) | |
parent | fc4eb87dc45b169e3912c73bbf60cb8ce76b7c7c (diff) | |
download | guix-patches-ce9383c090fff90acb3a555d0ccfe12d791fef17.tar guix-patches-ce9383c090fff90acb3a555d0ccfe12d791fef17.tar.gz |
Merge remote-tracking branch 'master' into core-updates.
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 <michael@68k.org> +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> + { |