Hello, based on discussion https://github.com/haproxy/haproxy/issues/755
cheers, Ilya Shipitcin
From f02b672daf08cb94eff13d6666d07f575f37ae6a Mon Sep 17 00:00:00 2001 From: Ilya Shipitsin <[email protected]> Date: Sun, 6 Sep 2020 13:34:25 +0500 Subject: [PATCH 2/2] CI: travis-ci: help Coverity to recognize abort() --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index ca867d967..8850850ec 100644 --- a/.travis.yml +++ b/.travis.yml @@ -55,7 +55,7 @@ matrix: - os: linux if: type == cron compiler: clang - env: TARGET=linux-glibc COVERITY_SCAN_PROJECT_NAME="Haproxy" COVERITY_SCAN_BRANCH_PATTERN="*" COVERITY_SCAN_NOTIFICATION_EMAIL="[email protected]" COVERITY_SCAN_BUILD_COMMAND="make CC=clang TARGET=$TARGET $FLAGS 51DEGREES_SRC=$FIFTYONEDEGREES_SRC" + env: TARGET=linux-glibc COVERITY_SCAN_PROJECT_NAME="Haproxy" COVERITY_SCAN_BRANCH_PATTERN="*" COVERITY_SCAN_NOTIFICATION_EMAIL="[email protected]" COVERITY_SCAN_BUILD_COMMAND="make CC=clang DEFINE=-DDEBUG_USE_ABORT TARGET=$TARGET $FLAGS 51DEGREES_SRC=$FIFTYONEDEGREES_SRC" script: - | if [ ! -z ${COVERITY_SCAN_TOKEN+x} ]; then -- 2.26.2
From 5d4f98349e9600f256c207330257fab84be72a95 Mon Sep 17 00:00:00 2001 From: Ilya Shipitsin <[email protected]> Date: Sun, 6 Sep 2020 13:32:31 +0500 Subject: [PATCH 1/2] BUILD: introduce possibility to define ABORT_NOW() conditionally code analysis tools recognize abort() better, so let us introduce such possibility --- Makefile | 1 + contrib/wurfl/libwurfl.a | Bin 0 -> 5116 bytes include/haproxy/bug.h | 7 ++++++- 3 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 contrib/wurfl/libwurfl.a diff --git a/Makefile b/Makefile index 48c595511..c0645093c 100644 --- a/Makefile +++ b/Makefile @@ -106,6 +106,7 @@ # SUBVERS : add a sub-version (eg: platform, model, ...). # VERDATE : force haproxy's release date. # VTEST_PROGRAM : location of the vtest program to run reg-tests. +# DEBUG_USE_ABORT: use abort() for program termination, see include/haproxy/bug.h for details # verbosity: pass V=1 for verbose shell invocation V = 0 diff --git a/contrib/wurfl/libwurfl.a b/contrib/wurfl/libwurfl.a new file mode 100644 index 0000000000000000000000000000000000000000..62b8637dbe2d5c07814ee8e3b2afb2ae555ceaac GIT binary patch literal 5116 zcmeI0PiP!v6u`eEwXI20<6o5KFcFm$%yxJ4kCj-q4M`T!lm-?>B9kw(lkCvloj5bQ zCM9aHAYHu_58|O<diElC$su5?APOR)2R-zVgF+5M6%;}()c3x5FFX0N<5uZOd@%cc z@Atm<{eAQ1OZvv7XBAI&o-p=GYB-Zg504HGXAC2$OwnJ%7|x84!(68j;$b1$Ke*e^ zYgKQdWG>o)DVH3xW_!NlRzyfG&z6BrO2PI6&s`zS2M5n}15#z7U@pnPDn@kAezgid zcEPmdlAL!+PQczcob7q8XO?Z>my0|`QTk@h@q(%>?RUZ<Eol{PbIEgSPQmtQu#zha zyH)pGb%~UMU2`m3t!>{7BDUB8sm<PnM;sj<HNtRD%w`7Ha~7QntgGtV9;~>+TNiPz zxL#S7ob#|{F|8cml$P2aa*Lb+ZfbaLPG!NRJwRBJKK#HYnSoQbP1s{NNvE<X3e|FX zWkC5PTnNr+Jf@OK2*%ytk&z+87#hr^!+@OYd~@RY$@aE32+L5~#7WW6m<qAo-Kb|( zH7mNs5s}Z;f8Id-mCsf6=8Z0@=IXESTnZ^xbM@-4k%o7UT07ONzvt@tZLMKcz3@vC z2Hb`@Y(dK(bMH>TlZW~jpW@taf0wII>@=qvH*a){uhio1e9n<|N2dYX@Xu5{iN+Q- z_r(PWkxHaeiF5)EI@DD(7%DQ1k~8l~Z^clrs==>n9s+pal#1YKw=yuX?Dzph(?HIa z_)aQUe0$BBERj}Y6})WEvCObh7{j8;tI_mL2qzUzP=$CDV2~Ra<OT-05L4sh&lvqv z)A{2N#JE5solGZ_qv=7Tf5t8tIT?^)Aaxv;{!qAl(RO}Dv@Q3v9XoR9@Fm#BUf}qk zbm7mbqdjl8k9QxOga)9ZZ45a`oP9Pl$J$rP{vejz|8%4O%Ps7iE$r9Hejk?H|8tH0 zZ?*96r5F2=sQ=l9{}|ch`ky8HRMfxywCbQ2*ecm$*WbdvN%pw?zfShJ`Q2(^?`;n^ zD9(SZg?+Y#eYJ)C^559QneG3@B^?mI-QI5zqN8c1M&8k^InV<!{GJ$oD2C%3vtK&I z!F>?-`hmzi)!71jk~r&JrirT<g*x*r@jfU~RE$A+1|IBx2q6e_6Y9uStVZ}7#9xLI zMa2S?@56)b9fTm<&nHkvzN)AYJg={bzek+=`GNQq;ynIO#J7oa|IoGS|4)rSLHsC` zD7+6D;*SyMabF<buki)qqZ)sQ_@u@^CZ5;$_rwbt-zM&Be9xuCirixUzn*HBXu1LZ zcdw@^emTS7A3$73gQcuOFz+G#n#M6Npy2z3!tI|8Rq+Rv%+Hd3nBtN-<^`0;HC_p^ zNX781#xGF&GaAP{f>PG_M<L$*M)G_%i5pbnCxSi`iexp;d0<ZCoR`)#-bebn#yMYJ z)i~#?Esb-&#C(Oq^W=PKXq@vU?;E%0d^xAJzY=yU)-=xfa$Vz`FRyBx^W~PtIbZVT z@_aa78no%mIbUWq&iQgq<D4(oG|u^QUE`cDMZ#Yx2XY?DzzfSF*F3u<6M?-Ph(tjK zQY7YmUnD#?R4lh##y>w36*sUGa6=yO18JRu2IyuN%>_^54f^hg0o~x1>R<RQFqF4w zze6o-%XKV|!GpJtEId&u;)?)ckUy$e<r~JMXaso*9_0GX<}+<vY>T4fr-5Og|JFZ6 zebO<47Rr}25a%W4Jb%_RP{F43=NV)1A$53SmxL9bKbNNgb3NMh8+}4#)Z4yD{(AFo z32bNvef~4x-|YM@QbO9H0rC9Mm;L$t(5wvsM2L&@G2nS%clW}h`y<oO4v=_>8g^-& U>+8Qi#($0euOYFsi0J-*0cf^aod5s; literal 0 HcmV?d00001 diff --git a/include/haproxy/bug.h b/include/haproxy/bug.h index a008126f5..447b3ad22 100644 --- a/include/haproxy/bug.h +++ b/include/haproxy/bug.h @@ -37,10 +37,15 @@ #define DPRINTF(x...) #endif -/* This abort is more efficient than abort() because it does not mangle the +#ifdef DEBUG_USE_ABORT +/* abort() is better recognized by code analysis tools */ +#define ABORT_NOW() abort() +#else +/* More efficient than abort() because it does not mangle the * stack and stops at the exact location we need. */ #define ABORT_NOW() (*(volatile int*)1=0) +#endif /* BUG_ON: complains if <cond> is true when DEBUG_STRICT or DEBUG_STRICT_NOCRASH * are set, does nothing otherwise. With DEBUG_STRICT in addition it immediately -- 2.26.2

