diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 18:45:59 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 18:45:59 +0000 |
commit | 19fcec84d8d7d21e796c7624e521b60d28ee21ed (patch) | |
tree | 42d26aa27d1e3f7c0b8bd3fd14e7d7082f5008dc /src/boost/libs/beast/tools | |
parent | Initial commit. (diff) | |
download | ceph-upstream.tar.xz ceph-upstream.zip |
Adding upstream version 16.2.11+ds.upstream/16.2.11+dsupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/boost/libs/beast/tools')
-rw-r--r-- | src/boost/libs/beast/tools/blacklist.supp | 30 | ||||
-rwxr-xr-x | src/boost/libs/beast/tools/build-and-test.sh | 162 | ||||
-rwxr-xr-x | src/boost/libs/beast/tools/coverage.sh | 9 | ||||
-rw-r--r-- | src/boost/libs/beast/tools/field.txt | 352 | ||||
-rwxr-xr-x | src/boost/libs/beast/tools/get-boost.sh | 89 | ||||
-rwxr-xr-x | src/boost/libs/beast/tools/install-dependencies.sh | 47 | ||||
-rwxr-xr-x | src/boost/libs/beast/tools/local-travis.sh | 8 | ||||
-rwxr-xr-x | src/boost/libs/beast/tools/make_field.sh | 22 | ||||
-rwxr-xr-x | src/boost/libs/beast/tools/retry.sh | 9 | ||||
-rw-r--r-- | src/boost/libs/beast/tools/user-config.jam | 13 | ||||
-rw-r--r-- | src/boost/libs/beast/tools/valgrind.supp | 31 |
11 files changed, 772 insertions, 0 deletions
diff --git a/src/boost/libs/beast/tools/blacklist.supp b/src/boost/libs/beast/tools/blacklist.supp new file mode 100644 index 000000000..669f3eb64 --- /dev/null +++ b/src/boost/libs/beast/tools/blacklist.supp @@ -0,0 +1,30 @@ + +# Remember that this blacklist file is GLOBAL to all sanitizers +# Be therefore extremely careful when considering to add a sanitizer +# filter here instead of using a runtime suppression +# +# Remember also that filters here quite literally completely +# remove instrumentation altogether, so filtering here means +# that sanitizers such as tsan will false positive on problems +# introduced by code filtered here. +# +# The main use for this file is ubsan, as it's the only sanitizer +# without a runtime suppression facility. +# +# Be ESPECIALLY careful when filtering out entire source files! +# Try if at all possible to filter only functions using fun:regex +# Remember you must use mangled symbol names with fun:regex + +# boost/lexical_cast.hpp:1625:43: runtime error: downcast of address 0x7fbb4fffbce8 which does not point to an object of type 'buffer_t' (aka 'parser_buf<std::basic_streambuf<char, char_traits<char> >, char>') +# Fixed in Boost 1.63.0 https://svn.boost.org/trac/boost/ticket/12889 +# +fun:*shl_input_streamable* + +## The well known ubsan failure in libstdc++ extant for years :) +# Line 96:24: runtime error: load of value 4294967221, which is not a valid value for type 'std::_Ios_Fmtflags' +# +#fun:*_Ios_Fmtflags* + +# boost/any.hpp:259:16: runtime error: downcast of address 0x000004392e70 which does not point to an object of type 'any::holder<int>' +# +#fun:*any_cast*
\ No newline at end of file diff --git a/src/boost/libs/beast/tools/build-and-test.sh b/src/boost/libs/beast/tools/build-and-test.sh new file mode 100755 index 000000000..7d95f6f3d --- /dev/null +++ b/src/boost/libs/beast/tools/build-and-test.sh @@ -0,0 +1,162 @@ +#!/usr/bin/env bash + +# add 'x' for command tracing +set -eu + +#------------------------------------------------------------------------------- +# +# Utilities +# + +# For builds not triggered by a pull request TRAVIS_BRANCH is the name of the +# branch currently being built; whereas for builds triggered by a pull request +# it is the name of the branch targeted by the pull request (in many cases this +# will be master). +MAIN_BRANCH="0" +if [[ $TRAVIS_BRANCH == "master" || $TRAVIS_BRANCH == "develop" ]]; then + MAIN_BRANCH="1" +fi + +if [[ "${BEAST_RETRY}" == "true" ]]; then + JOBS=1 +elif [[ "${TRAVIS}" == "true" ]]; then + JOBS="2" +elif [[ $(uname -s) == "Linux" ]]; then + # Physical cores + JOBS=$(lscpu -p | grep -v '^#' | sort -u -t, -k 2,4 | wc -l) +elif [[ $(uname) == "Darwin" ]]; then + # Physical cores + JOBS=$(sysctl -n hw.physicalcpu) +else + JOBS=1 +fi + +# run with a debugger +function debug_run () +{ + if [[ $TRAVIS_OS_NAME == "osx" ]]; then + # -o runs after loading the binary + # -k runs after any crash + # We use a ghetto appromixation of --return-child-result, exiting with + # 1 on a crash + lldb \ + --batch \ + -o 'run' \ + -k 'thread backtrace all' \ + -k 'script import os; os._exit(1)' \ + $@ + else + gdb \ + --silent \ + --batch \ + --return-child-result \ + -ex="set print thread-events off" \ + -ex=run \ + -ex="thread apply all bt full" \ + --args $@ + fi +} + +function valgrind_run () +{ + valgrind \ + --track-origins=yes \ + --max-stackframe=16000000 \ + --suppressions=$BOOST_ROOT/libs/beast/tools/valgrind.supp \ + --error-exitcode=1 \ + $@ +} + +function run_tests_with_debugger () +{ + find "$1" -name "$2" -print0 | while read -d $'\0' f + do + debug_run "$f" + done +} + +function run_tests_with_valgrind () +{ + find "$1" -name "$2" -print0 | while read -d $'\0' f + do + valgrind_run "$f" + done +} + +function run_tests () +{ + find "$1" -name "$2" -print0 | while read -d $'\0' f + do + "$f" + done +} + +#------------------------------------------------------------------------------- + +BIN_DIR="$BOOST_ROOT/bin.v2/libs/beast/test" +LIB_DIR="$BOOST_ROOT/libs/beast" +INC_DIR="$BOOST_ROOT/boost/beast" + +function build_bjam () +{ + if [[ $VARIANT == "beast_coverage" ]] || \ + [[ $VARIANT == "beast_valgrind" ]] || \ + [[ $VARIANT == "beast_ubasan" ]]; then + b2 \ + define=BOOST_COROUTINES_NO_DEPRECATION_WARNING=1 \ + cxxstd=$CXXSTD \ + libs/beast/test/beast/core//fat-tests \ + libs/beast/test/beast/http//fat-tests \ + libs/beast/test/beast/websocket//fat-tests \ + libs/beast/test/beast/zlib//fat-tests \ + toolset=$TOOLSET \ + variant=$VARIANT \ + link=static \ + -j${JOBS} + elif [[ $VARIANT == "debug" ]]; then + b2 \ + define=BOOST_COROUTINES_NO_DEPRECATION_WARNING=1 \ + cxxstd=$CXXSTD \ + libs/beast/test//fat-tests \ + libs/beast/example \ + toolset=$TOOLSET \ + variant=$VARIANT \ + -j${JOBS} + else + b2 \ + define=BOOST_COROUTINES_NO_DEPRECATION_WARNING=1 \ + cxxstd=$CXXSTD \ + libs/beast/test//fat-tests \ + toolset=$TOOLSET \ + variant=$VARIANT \ + -j${JOBS} + fi +} + +build_bjam + +if [[ $VARIANT == "beast_coverage" ]]; then + # for lcov to work effectively, the paths and includes + # passed to the compiler should not contain "." or "..". + # (this runs in $BOOST_ROOT) + lcov --version + find "$BOOST_ROOT" -name "*.gcda" | xargs rm -f + rm -f "$BOOST_ROOT/*.info" + lcov --no-external -c -i -d "$BOOST_ROOT" -o baseline.info > /dev/null + run_tests "$BIN_DIR" fat-tests + # https://bugs.launchpad.net/ubuntu/+source/lcov/+bug/1163758 + lcov --no-external -c -d "$BOOST_ROOT" -o testrun-all.info > /dev/null 2>&1 + lcov -a baseline.info -a testrun-all.info -o lcov-diff.info > /dev/null + lcov -e "lcov-diff.info" "$INC_DIR/*" -o lcov.info > /dev/null + lcov --remove "lcov.info" "$INC_DIR/_experimental/*" -o lcov.info > /dev/null + ~/.local/bin/codecov -X gcov -f lcov.info + find "$BOOST_ROOT" -name "*.gcda" | xargs rm -f + +elif [[ $VARIANT == "beast_valgrind" ]]; then + run_tests_with_valgrind "$BIN_DIR" fat-tests + +else + #run_tests_with_debugger "$BIN_DIR" fat-tests + run_tests "$BIN_DIR" fat-tests + +fi diff --git a/src/boost/libs/beast/tools/coverage.sh b/src/boost/libs/beast/tools/coverage.sh new file mode 100755 index 000000000..508e83d6b --- /dev/null +++ b/src/boost/libs/beast/tools/coverage.sh @@ -0,0 +1,9 @@ +#! /bin/bash +set -e +lcov --directory bin.v2 --capture --no-external --directory $(pwd) --output-file coverage.info > /dev/null 2>&1 +lcov --extract coverage.info $(pwd)'/boost/beast/*' --output-file coverage.info > /dev/null +lcov --remove coverage.info $(pwd)'/boost/beast/_experimental/*' --output-file coverage.info > /dev/null +lcov --list coverage.info +# Codecov improperly detects project root in AzP, so we need to upload from beast git repo +cd libs/beast +curl -s https://codecov.io/bash -o codecov && bash ./codecov -X gcov -f ../../coverage.info -t $CODECOV_TOKEN diff --git a/src/boost/libs/beast/tools/field.txt b/src/boost/libs/beast/tools/field.txt new file mode 100644 index 000000000..bc7926ce7 --- /dev/null +++ b/src/boost/libs/beast/tools/field.txt @@ -0,0 +1,352 @@ +Accept +Accept-Additions +Accept-Charset +Accept-Datetime +Accept-Encoding +Accept-Features +Accept-Language +Accept-Patch +Accept-Post +Accept-Ranges +Access-Control +Access-Control-Allow-Credentials +Access-Control-Allow-Headers +Access-Control-Allow-Methods +Access-Control-Allow-Origin +Access-Control-Expose-Headers +Access-Control-Max-Age +Access-Control-Request-Headers +Access-Control-Request-Method +Age +A-IM +Allow +ALPN +Also-Control +Alternate-Recipient +Alternates +Alt-Svc +Alt-Used +Apparently-To +Apply-To-Redirect-Ref +Approved +Archive +Archived-At +Article-Names +Article-Updates +Authentication-Control +Authentication-Info +Authentication-Results +Authorization +Autoforwarded +Autosubmitted +Auto-Submitted +Base +Bcc +Body +Cache-Control +CalDAV-Timezones +Cancel-Key +Cancel-Lock +Cc +C-Ext +Close +C-Man +Comments +Compliance +Connection +Content-Alternative +Content-Base +Content-Description +Content-Disposition +Content-Duration +Content-Encoding +Content-features +Content-ID +Content-Identifier +Content-Language +Content-Length +Content-Location +Content-MD5 +Content-Range +Content-Return +Content-Script-Type +Content-Style-Type +Content-Transfer-Encoding +Content-Type +Content-Version +Control +Conversion +Conversion-With-Loss +Cookie +Cookie2 +C-Opt +Cost +C-PEP +C-PEP-Info +DASL +Date +Date-Received +DAV +Default-Style +Deferred-Delivery +Delivery-Date +Delta-Base +Depth +Derived-From +Destination +Differential-ID +Digest +Discarded-X400-IPMS-Extensions +Discarded-X400-MTS-Extensions +Disclose-Recipients +Disposition-Notification-Options +Disposition-Notification-To +Distribution +DKIM-Signature +DL-Expansion-History +Downgraded-Bcc +Downgraded-Cc +Downgraded-Disposition-Notification-To +Downgraded-Final-Recipient +Downgraded-From +Downgraded-In-Reply-To +Downgraded-Mail-From +Downgraded-Message-Id +Downgraded-Original-Recipient +Downgraded-Rcpt-To +Downgraded-References +Downgraded-Reply-To +Downgraded-Resent-Bcc +Downgraded-Resent-Cc +Downgraded-Resent-From +Downgraded-Resent-Reply-To +Downgraded-Resent-Sender +Downgraded-Resent-To +Downgraded-Return-Path +Downgraded-Sender +Downgraded-To +EDIINT-Features +Eesst-Version +Encoding +Encrypted +Errors-To +ETag +Expect +Expires +Expiry-Date +Ext +Followup-To +Forwarded +From +Generate-Delivery-Report +GetProfile +Hobareg +Host +HTTP2-Settings +If +If-Match +If-Modified-Since +If-None-Match +If-Range +If-Schedule-Tag-Match +If-Unmodified-Since +IM +Importance +Incomplete-Copy +Injection-Date +Injection-Info +In-Reply-To +Jabber-ID +Keep-Alive +Keywords +Label +Language +Last-Modified +Latest-Delivery-Time +Lines +Link +List-Archive +List-Help +List-ID +List-Owner +List-Post +List-Subscribe +List-Unsubscribe +List-Unsubscribe-Post +Location +Lock-Token +Man +Max-Forwards +Memento-Datetime +Message-Context +Message-ID +Message-Type +Meter +Method-Check +Method-Check-Expires +MIME-Version +MMHS-Acp127-Message-Identifier +MMHS-Authorizing-Users +MMHS-Codress-Message-Indicator +MMHS-Copy-Precedence +MMHS-Exempted-Address +MMHS-Extended-Authorisation-Info +MMHS-Handling-Instructions +MMHS-Message-Instructions +MMHS-Message-Type +MMHS-Originator-PLAD +MMHS-Originator-Reference +MMHS-Other-Recipients-Indicator-CC +MMHS-Other-Recipients-Indicator-To +MMHS-Primary-Precedence +MMHS-Subject-Indicator-Codes +MT-Priority +Negotiate +Newsgroups +NNTP-Posting-Date +NNTP-Posting-Host +Non-Compliance +Obsoletes +Opt +Optional +Optional-WWW-Authenticate +Ordering-Type +Organization +Origin +Original-Encoded-Information-Types +Original-From +Original-Message-ID +Original-Recipient +Original-Sender +Original-Subject +Originator-Return-Address +Overwrite +P3P +Path +PEP +Pep-Info +PICS-Label +Position +Posting-Version +Pragma +Prefer +Preference-Applied +Prevent-NonDelivery-Report +Priority +Privicon +ProfileObject +Protocol +Protocol-Info +Protocol-Query +Protocol-Request +Proxy-Authenticate +Proxy-Authentication-Info +Proxy-Authorization +Proxy-Connection +Proxy-Features +Proxy-Instruction +Public +Public-Key-Pins +Public-Key-Pins-Report-Only +Range +Received +Received-SPF +Redirect-Ref +References +Referer +Referer-Root +Relay-Version +Reply-By +Reply-To +Require-Recipient-Valid-Since +Resent-Bcc +Resent-Cc +Resent-Date +Resent-From +Resent-Message-ID +Resent-Reply-To +Resent-Sender +Resent-To +Resolution-Hint +Resolver-Location +Retry-After +Return-Path +Safe +Schedule-Reply +Schedule-Tag +Security-Scheme +Sec-WebSocket-Accept +Sec-WebSocket-Extensions +Sec-WebSocket-Key +Sec-WebSocket-Protocol +Sec-WebSocket-Version +See-Also +Sender +Sensitivity +Server +Set-Cookie +Set-Cookie2 +SetProfile +SIO-Label +SIO-Label-History +SLUG +SoapAction +Solicitation +Status-URI +Strict-Transport-Security +Subject +SubOK +Subst +Summary +Supersedes +Surrogate-Capability +Surrogate-Control +TCN +TE +Timeout +Title +To +Topic +Trailer +Transfer-Encoding +TTL +UA-Color +UA-Media +UA-Pixels +UA-Resolution +UA-Windowpixels +Upgrade +Urgency +URI +User-Agent +Variant-Vary +Vary +VBR-Info +Version +Via +Want-Digest +Warning +WWW-Authenticate +X400-Content-Identifier +X400-Content-Return +X400-Content-Type +X400-MTS-Identifier +X400-Originator +X400-Received +X400-Recipients +X400-Trace +X-Archived-At +X-Device-Accept +X-Device-Accept-Charset +X-Device-Accept-Encoding +X-Device-Accept-Language +X-Device-User-Agent +X-Frame-Options +X-Mittente +X-PGP-Sig +Xref +X-Ricevuta +X-Riferimento-Message-ID +X-TipoRicevuta +X-Trasporto +X-VerificaSicurezza diff --git a/src/boost/libs/beast/tools/get-boost.sh b/src/boost/libs/beast/tools/get-boost.sh new file mode 100755 index 000000000..c614a486a --- /dev/null +++ b/src/boost/libs/beast/tools/get-boost.sh @@ -0,0 +1,89 @@ +#! /bin/sh + +set -e + +build_dir=$2 + +branch="master" + +if [ "$1" != "master" -a "$1" != "refs/heads/master" ]; then + branch="develop" +fi + +echo "BUILD_DIR: $build_dir" +echo "BRANCH: $branch" + +git clone -b $branch --depth 1 https://github.com/boostorg/boost.git boost-root +cd boost-root + +# Use a reasonably large depth to prevent intermittent update failures due to +# commits being on a submodule's master before the superproject is updated. +git submodule update --init --depth 20 --jobs 4 \ + libs/array \ + libs/headers \ + tools/build \ + tools/boost_install \ + tools/boostdep \ + libs/align \ + libs/asio \ + libs/assert \ + libs/config \ + libs/core \ + libs/endian \ + libs/filesystem \ + libs/intrusive \ + libs/locale \ + libs/optional \ + libs/smart_ptr \ + libs/static_assert \ + libs/system \ + libs/throw_exception \ + libs/type_traits \ + libs/utility \ + libs/winapi \ + libs/algorithm \ + libs/array \ + libs/atomic \ + libs/bind \ + libs/chrono \ + libs/concept_check \ + libs/container \ + libs/container_hash \ + libs/context \ + libs/conversion \ + libs/coroutine \ + libs/date_time \ + libs/detail \ + libs/exception \ + libs/function \ + libs/function_types \ + libs/functional \ + libs/fusion \ + libs/integer \ + libs/io \ + libs/iterator \ + libs/lambda \ + libs/lexical_cast \ + libs/logic \ + libs/math \ + libs/move \ + libs/mp11 \ + libs/mpl \ + libs/numeric/conversion \ + libs/pool \ + libs/predef \ + libs/preprocessor \ + libs/random \ + libs/range \ + libs/ratio \ + libs/rational \ + libs/thread \ + libs/tuple \ + libs/type_index \ + libs/typeof \ + libs/unordered + +echo Submodule update complete + +rm -rf libs/beast +cp -r $build_dir libs/beast diff --git a/src/boost/libs/beast/tools/install-dependencies.sh b/src/boost/libs/beast/tools/install-dependencies.sh new file mode 100755 index 000000000..e865187ba --- /dev/null +++ b/src/boost/libs/beast/tools/install-dependencies.sh @@ -0,0 +1,47 @@ +#!/usr/bin/env bash +# Exit if anything fails. +set -eux + +HERE=$PWD + +# Override gcc version to $GCC_VER. +# Put an appropriate symlink at the front of the path. +mkdir -pv $HOME/bin +for g in gcc g++ gcov gcc-ar gcc-nm gcc-ranlib +do + test -x $( type -p ${g}-$GCC_VER ) + ln -sv $(type -p ${g}-$GCC_VER) $HOME/bin/${g} +done + +if [[ -n ${CLANG_VER:-} ]]; then + # There are cases where the directory exists, but the exe is not available. + # Use this workaround for now. + if [[ ! -x llvm-${LLVM_VERSION}/bin/llvm-config ]] && [[ -d llvm-${LLVM_VERSION} ]]; then + rm -fr llvm-${LLVM_VERSION} + fi + if [[ ! -d llvm-${LLVM_VERSION} ]]; then + mkdir llvm-${LLVM_VERSION} + LLVM_URL="http://llvm.org/releases/${LLVM_VERSION}/clang+llvm-${LLVM_VERSION}-x86_64-linux-gnu-ubuntu-14.04.tar.xz" + wget -O - ${LLVM_URL} | tar -Jxvf - --strip 1 -C llvm-${LLVM_VERSION} + fi + llvm-${LLVM_VERSION}/bin/llvm-config --version; + export LLVM_CONFIG="llvm-${LLVM_VERSION}/bin/llvm-config"; +fi + +# NOTE, changed from PWD -> HOME +export PATH=$HOME/bin:$PATH + +# What versions are we ACTUALLY running? +if [ -x $HOME/bin/g++ ]; then + $HOME/bin/g++ -v +fi +if [ -x $HOME/bin/clang ]; then + $HOME/bin/clang -v +fi + +# Avoid `spurious errors` caused by ~/.npm permission issues +# Does it already exist? Who owns? What permissions? +ls -lah ~/.npm || mkdir ~/.npm + +# Make sure we own it +chown -Rc $USER ~/.npm diff --git a/src/boost/libs/beast/tools/local-travis.sh b/src/boost/libs/beast/tools/local-travis.sh new file mode 100755 index 000000000..8dd79da58 --- /dev/null +++ b/src/boost/libs/beast/tools/local-travis.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +export VARIANT=ubasan +export TOOLSET=clang +export TRAVIS=0 +export BOOST_ROOT="`pwd`" + +"$1" diff --git a/src/boost/libs/beast/tools/make_field.sh b/src/boost/libs/beast/tools/make_field.sh new file mode 100755 index 000000000..8e54c1372 --- /dev/null +++ b/src/boost/libs/beast/tools/make_field.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +export LC_COLLATE=C + +echo "// string constants" +echo ' "<unknown-field>",' +cat $1 | sort -f | uniq | sed 's/^/ \"/; s/$/\",/' +echo + +echo "enum class field : unsigned short" +echo "{" +echo " unknown = 0," +echo +#cat $1 | uniq | sort -f | sed 's/./\L&/g; s/^/\t/; s/$/,/' +cat $1 | sort -f | uniq | sed 's/\(.*\)/ \L\1,/; s/-/_/g' +echo "};" +echo + +echo "// pairs" +#cat $1 | uniq | sort -f | sed 's/\(.*\)/\tmatch\(field::\L\1, \"\E\1\"\);/; s/-/_/' +cat $1 | sort -f | uniq | perl -nE 'chomp; $a=lc($_); $a=~s/-/_/g; say " match(field::$a, \"$_\");";' | tr -d "\015" + diff --git a/src/boost/libs/beast/tools/retry.sh b/src/boost/libs/beast/tools/retry.sh new file mode 100755 index 000000000..13b30e8e1 --- /dev/null +++ b/src/boost/libs/beast/tools/retry.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +for i in {1..3} +do + $1 "${@:2:99}" && exit 0; + export BEAST_RETRY="true" +done + +exit 1 diff --git a/src/boost/libs/beast/tools/user-config.jam b/src/boost/libs/beast/tools/user-config.jam new file mode 100644 index 000000000..215e5adb7 --- /dev/null +++ b/src/boost/libs/beast/tools/user-config.jam @@ -0,0 +1,13 @@ +# Used on CI + +import os ; + +local OPENSSL_ROOT = [ os.environ OPENSSL_ROOT ] ; + +project + : requirements + <include>$(OPENSSL_ROOT)/include + <variant>debug:<library-path>$(OPENSSL_ROOT)/lib + <target-os>windows<variant>debug:<library-path>$(OPENSSL_ROOT)/debug/lib + <variant>release:<library-path>$(OPENSSL_ROOT)/lib + ; diff --git a/src/boost/libs/beast/tools/valgrind.supp b/src/boost/libs/beast/tools/valgrind.supp new file mode 100644 index 000000000..aa699b741 --- /dev/null +++ b/src/boost/libs/beast/tools/valgrind.supp @@ -0,0 +1,31 @@ +{ + zlib_fill_window_no_init + Memcheck:Cond + fun:fill_window +} + +{ + zlib_deflate_fast + Memcheck:Cond + fun:deflate_fast +} + +{ + Ignore OpenSSL malloc + Memcheck:Leak + fun:malloc + fun:CRYPTO_malloc + obj:*libcrypto* +} +{ + Ignore OpenSSL realloc + Memcheck:Leak + fun:realloc + fun:CRYPTO_realloc + obj:*libcrypto* +} +{ + OpenSSL Non-Purify + Memcheck:Cond + obj:*libcrypto* +} |