commit: 66f614c51f017b0693f5aaeb5897db28ef3aff6c Author: Manoj Gupta <manojgupta <AT> google <DOT> com> AuthorDate: Fri Aug 24 17:43:58 2018 +0000 Commit: Thomas Deutschmann <whissi <AT> gentoo <DOT> org> CommitDate: Fri Aug 24 17:47:29 2018 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=66f614c5
app-arch/bzip2: fix an error reported by ubsan Use unsigned 1 for shifting instead of signed 1. Fix an issue with shift caught by undefined behavior sanitizer in clang. bzip2-1.0.6/blocksort.c:255:7 runtime error: left shift of 1 by 31 places cannot be represented in type 'int'. Closes: https://github.com/gentoo/gentoo/pull/9688 Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org> ...zip2-1.0.6-r9.ebuild => bzip2-1.0.6-r10.ebuild} | 1 + app-arch/bzip2/files/bzip2-1.0.6-ubsan-error.patch | 24 ++++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/app-arch/bzip2/bzip2-1.0.6-r9.ebuild b/app-arch/bzip2/bzip2-1.0.6-r10.ebuild similarity index 98% rename from app-arch/bzip2/bzip2-1.0.6-r9.ebuild rename to app-arch/bzip2/bzip2-1.0.6-r10.ebuild index b2bae1f0989..5fb91d277fa 100644 --- a/app-arch/bzip2/bzip2-1.0.6-r9.ebuild +++ b/app-arch/bzip2/bzip2-1.0.6-r10.ebuild @@ -27,6 +27,7 @@ PATCHES=( "${FILESDIR}"/${PN}-1.0.6-mingw.patch #393573 "${FILESDIR}"/${PN}-1.0.6-out-of-tree-build.patch "${FILESDIR}"/${PN}-1.0.6-CVE-2016-3189.patch #620466 + "${FILESDIR}"/${PN}-1.0.6-ubsan-error.patch ) DOCS=( CHANGES README{,.COMPILATION.PROBLEMS,.XML.STUFF} manual.pdf ) diff --git a/app-arch/bzip2/files/bzip2-1.0.6-ubsan-error.patch b/app-arch/bzip2/files/bzip2-1.0.6-ubsan-error.patch new file mode 100644 index 00000000000..84b811177ed --- /dev/null +++ b/app-arch/bzip2/files/bzip2-1.0.6-ubsan-error.patch @@ -0,0 +1,24 @@ +Author: Manoj Gupta <[email protected]> + +Use unsigned 1 for shifting instead of signed 1. + +This fixed an issue with shift caught by undefined behavior +sanitizer in clang. +bzip2-1.0.6/blocksort.c:255:7 +runtime error: left shift of 1 by 31 places cannot be represented in type 'int' + +--- a/blocksort.c ++++ b/blocksort.c +@@ -202,9 +202,9 @@ void fallbackQSort3 ( UInt32* fmap, + bhtab [ 0 .. 2+(nblock/32) ] destroyed + */ + +-#define SET_BH(zz) bhtab[(zz) >> 5] |= (1 << ((zz) & 31)) +-#define CLEAR_BH(zz) bhtab[(zz) >> 5] &= ~(1 << ((zz) & 31)) +-#define ISSET_BH(zz) (bhtab[(zz) >> 5] & (1 << ((zz) & 31))) ++#define SET_BH(zz) bhtab[(zz) >> 5] |= (1u << ((zz) & 31)) ++#define CLEAR_BH(zz) bhtab[(zz) >> 5] &= ~(1u << ((zz) & 31)) ++#define ISSET_BH(zz) (bhtab[(zz) >> 5] & (1u << ((zz) & 31))) + #define WORD_BH(zz) bhtab[(zz) >> 5] + #define UNALIGNED_BH(zz) ((zz) & 0x01f) +
