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

Reply via email to