blob: 6e4697ccc2366e45c8b4551b92ed0027b2835d8d [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# Normally we ignore sanitizer false positives via suppressions lists, but UBSan
# suppressions can only be applied to recoverable checks, and we force all checks
# to be non-recoverable so that the process aborts and the test fails. Blacklists,
# which are applied at compile time, do correctly ignore non-recoverable errors.
#
# The syntax of this file is described in the UBSan documentation:
# https://clang.llvm.org/docs/SanitizerSpecialCaseList.html
#
# Note: when adding entries to this list, cmake will not recognize that it
# needs to completely rebuild everything, so a 'make clean' or equivalent is
# necessary.
# libstdc++'s mersenne twister implementation has an unsigned-integer overflow:
# include/c++/4.9.2/bits/random.tcc:416:33: runtime error: unsigned integer overflow: 397 - 624 cannot be represented in type 'unsigned long'
fun:*mersenne_twister_engine*
# Boost has multiple unsigned-integer overflows:
# include/boost/uuid/sha1.hpp:171:43: runtime error: unsigned integer overflow: 3903086636 + 2562383102 cannot be represented in type 'unsigned int'
src:*/boost/uuid/sha1.hpp
# include/boost/container/detail/copy_move_algo.hpp:949:11: runtime error: unsigned integer overflow: 0 - 1 cannot be represented in type 'unsigned long'
src:*/boost/container/detail/copy_move_algo.hpp
# include/boost/container_hash/hash.hpp:343:15: runtime error: unsigned integer overflow: 2700868258 * 14313749767032793493 cannot be represented in type 'unsigned long'
src:*/boost/container_hash/hash.hpp
# include/boost/functional/hash/hash.hpp:212:52: runtime error: unsigned integer overflow: 18389307270159922987 + 1512985112272252029 cannot be represented in type 'unsigned long'
src:*/boost/functional/hash/hash.hpp
# Protobuf's coded output stream and hash implementations have unsigned-integer overflows:
# include/google/protobuf/io/coded_stream.h:925:61: runtime error: unsigned integer overflow: 0 - 1 cannot be represented in type 'unsigned int'
# include/google/protobuf/stubs/hash.h:353:18: runtime error: unsigned integer overflow: 5 * 5697019175939388048 cannot be represented in type 'unsigned long'
# include/google/protobuf/map.h:951:21: runtime error: unsigned integer overflow: 11400714819323198485 * 6142505534017268963 cannot be represented in type 'unsigned long'
# include/google/protobuf/parse_context.h:191:57: runtime error: unsigned integer overflow: 0 - 1 cannot be represented in type 'unsigned int'
src:*/google/protobuf/io/coded_stream.h
src:*/google/protobuf/stubs/hash.h
src:*/google/protobuf/map.h
src:*/google/protobuf/parse_context.h
# Sparsepp has an unsigned-integer negation overflow:
# /include/sparsepp/spp.h:1196:20: runtime error: negation of 8192 cannot be represented in type 'group_bm_type' (aka 'unsigned int')
src:*/sparsepp/spp.h
# libstdc++'s basic_string implementation has unsigned-integer overflows
# bits/basic_string.h:392:51: runtime error: unsigned integer overflow: 4 - 17 cannot be represented in type 'unsigned long'
# bits/basic_string.tcc:1271:25: runtime error: unsigned integer overflow: 0 - 1 cannot be represented in type 'unsigned long'
src:*/bits/basic_string.h
src:*/bits/basic_string.tcc