From 653cda5dd46234519c38149309d24c75b9d36e77 Mon Sep 17 00:00:00 2001 From: Simone Date: Wed, 15 Jan 2025 19:34:22 +0100 Subject: [PATCH] Fix infinite loop --- slither/detectors/functions/modifier.py | 11 ++++++++++- .../0.4.25/modifier_default.sol | 6 ++++++ .../0.4.25/modifier_default.sol-0.4.25.zip | Bin 2880 -> 3100 bytes .../0.5.16/modifier_default.sol | 6 ++++++ .../0.5.16/modifier_default.sol-0.5.16.zip | Bin 2891 -> 3107 bytes .../0.6.11/modifier_default.sol | 6 ++++++ .../0.6.11/modifier_default.sol-0.6.11.zip | Bin 2913 -> 3140 bytes .../0.7.6/modifier_default.sol | 5 +++++ .../0.7.6/modifier_default.sol-0.7.6.zip | Bin 2851 -> 3079 bytes 9 files changed, 33 insertions(+), 1 deletion(-) diff --git a/slither/detectors/functions/modifier.py b/slither/detectors/functions/modifier.py index a888d5b703..862d2af67e 100644 --- a/slither/detectors/functions/modifier.py +++ b/slither/detectors/functions/modifier.py @@ -67,13 +67,16 @@ class ModifierDefaultDetection(AbstractDetector): def _detect(self) -> List[Output]: results = [] + # pylint: disable=too-many-nested-blocks for c in self.contracts: for mod in c.modifiers: if mod.contract_declarer != c: continue # Walk down the tree, only looking at nodes in the outer scope node = mod.entry_point + node_seen = [] while node is not None: + node_seen.append(node) # If any node in the outer scope executes _; or reverts, # we will never return a default value if node.type == NodeType.PLACEHOLDER or is_revert(node): @@ -81,7 +84,13 @@ def _detect(self) -> List[Output]: # Move down, staying on the outer scope in branches if len(node.sons) > 0: - node = _get_false_son(node) if node.contains_if() else node.sons[0] + if node.contains_if(): + node = _get_false_son(node) + else: + if node.sons[0] in node_seen: + node = node.sons[1] + else: + node = node.sons[0] else: node = None else: diff --git a/tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol b/tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol index 96f614880b..4eb35e72b3 100644 --- a/tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol +++ b/tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol @@ -49,4 +49,10 @@ contract Test { _; } while (i < 1); } + + modifier issue2619(bool b) { + while (b ? false : b) {} + _; + } + } diff --git a/tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol-0.4.25.zip b/tests/e2e/detectors/test_data/incorrect-modifier/0.4.25/modifier_default.sol-0.4.25.zip index 36dd1f4bfe90efc8a5a972b9692674b63e5e16c2..6f132c957afb41633bc43a95706fc1a21d14d472 100644 GIT binary patch delta 2994 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 F004d^UZns4 diff --git a/tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol b/tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol index 96f614880b..4eb35e72b3 100644 --- a/tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol +++ b/tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol @@ -49,4 +49,10 @@ contract Test { _; } while (i < 1); } + + modifier issue2619(bool b) { + while (b ? false : b) {} + _; + } + } diff --git a/tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol-0.5.16.zip b/tests/e2e/detectors/test_data/incorrect-modifier/0.5.16/modifier_default.sol-0.5.16.zip index cc707c9636e8078eda3997e51d0773308d076ad5..206d60610989f8b0f5366f52554c3dd5b7ed9842 100644 GIT binary patch delta 2987 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 delta 2762 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 diff --git a/tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol b/tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol index 96f614880b..4eb35e72b3 100644 --- a/tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol +++ b/tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol @@ -49,4 +49,10 @@ contract Test { _; } while (i < 1); } + + modifier issue2619(bool b) { + while (b ? false : b) {} + _; + } + } diff --git a/tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol-0.6.11.zip b/tests/e2e/detectors/test_data/incorrect-modifier/0.6.11/modifier_default.sol-0.6.11.zip index 1d5d42bd2515208499ea2aaa3cdccf45dcf149cf..3b0f129d3f364ef8d798533213399d8e77489ee3 100644 GIT binary patch delta 3020 zcmV;-3p4cL7Q`4EP)h>@KL7#%4gm0*FIv#sj`@-c0072w001bHAPXyzMk;^xLq3k% z8(|US<+$<-R-TXbNE-97FH-K9mq@1&+0=A#oo)!e&BRa?>@UL&m{xMKPC59HR5yY3 zXb#y;XGaxV)UKp2A#xL*wuRo{@2;#$zQvQ`X}W3FMyNd&c!2F;CW!+GaY&la5?IT~ z>A+ExSid8PRSAog$ILLn`p18^R0K(B90y#_{5n#Ci6+5?I@PP=LLzs#2RPXZ$nr(! zMF1aOAetf{DQqyrc{d{==bp`o)AhUtCvEIW?DOqlcaJ+EN6?^4tlE5 zIXGST#-RQ;W0=lG-u*1qVVCok=PvYe-R*K?q0erQCHM%<7>iFs3lXjsc5{>>?@&S9d9GpE;JoYmJ8UI zipHmjB(dZchUI=8WNwX=5zyUX;v$B$UF)w1n8FgKGPd5-9^w}uGpF2KB`E%cTh+7T zLFGbaC*b`O?0b4xm(_nuLK@e9*G>zyd@<0r?cZtWnInl9rXUUNu!8m(lk~w73||;elsb?PcbD_j!7ou zyIaoduNND~hx~uSm93j$#Gk$%l-3eTD-9uy_O{}*5hK01t*Z5KMh`f%pL(Q1RDsP> zEm2*<%MfKQsEGlfXw^|0lSO6wB@*JpZQG8Iz*4S4ktlE(WP($|Ny7j8dN?-X2#;!^ zk$lI=XT$Y|zf1-A1~hF6-VdCph{sd8m6P0Oqu%IG-Y7+8}m*%H1n0-r;t@4+*LpZUWSV7yTY!c^*# z&^z+$VDLPatG*-KQH8>9M7B%NowHJ8&oUVMCqv#0OxD-9pF~=;4eP{t7f_ z8BgEmwBqB+wG}*_p`n@Kt{R=d!%p&U$0`tsK@bt#;a|_?-2y+d_)F7ZnggTSCqSa` zLy>5uvVjRRs|{aL@EO^9AF{Gp-9fbm7S?d;?uvhmO3zJuOMb{&rX+cUladwxz%$1+ zhYsZNjiwx?MS!Q;>a-_|*?qe||1@xEa2n-8vGNBX=aVSDdUa5~JqKAdxw3z~n|FAY zc&S}7`ts2i#%oNg9#m_J#TRe zGR+Ea3N!Q0bJi};!SC{iCoSD^AVBjk1JZ4*_BjLrUe*fDD)Sdv*P@RSRie?EJQ!+Q zlsC5cJ}r4czeJ}M#ZK8r<_?|f%&Y8tgWrEsN?(Wck(@pz#x3ef+}l#hytX+lJGlXN`DVMxk%0AFLW$?UouS?gYAzUo_5;n;I+c*)l zel*7eC!_g%y{O2urkr~7B8MJZ@x2?b_YtnXq#oJiA=Tdxe#UOYdFki=VE!JrxPX8A zpQ|;B27}@c9ZU12<>!#Ak;;J|1u)4$VKmn`;Tc7#Ja;qrK$N<+Qf9aJo6*lR0KiH` z^-#eWsiRC>;H3U<{8x+0SnD%SuXj^8<2}>lh8&Y9Qamo@HsL~;FGNUoh=jWjz9`rWxVE#d7JFH? z^JOWU8VAG4rS4w6E}6F}E(-Y$?kVxYxW@bQQHG03v#ywWG>-U`avo?SQj>pV#gbVL zI{Zw%wN8{<8TAEmKe(yO{M@9vc0HjIQ8}cIwqN|4Wg=}CIx(}lC<|+~v1RBb3Ud8` zCh~1HM8D!JGqN_89pAOj54Q~^-xVPht3&Et_4i)H;I7H0dvz982pLZQJiB0BNS%M)kPmKtF%JJKO0`#5*TokHlW!C3r4E}6Eh}R%N6D|Eyy#y+L?iWm`BI*L>G`wSCjJc4 zX&BAJhcZ#LOS8{Z9q}rGc*OO}23*CyN+7`i#NlF_B7Y)?QV4Q}=&|nAUxwF1~Xz>`}HHC-9$7eYI`RF=cjmQvv3`T<~o z{}{#vDB)ik$69pzB%;{435N673?Znboe5%On$jFr*qdrn!w8x@wxnN)NjnNT=pMXt zQqMu+^rfvczqN=3IA*!=>I@Z~YrU+lf$30h6=& zOMMC8fE};IaBY7c=#7%75f3+qhtF;J6_^G-F>D?r#1maFS`Bn1?T;QL zMN+V|D7Q)LU$gpJl?92ZktB@3g-|8lti>lS^|BBC!}Wj6<$CdqZeE~&#<(Qp@$WlV zPQp=N}R(;O)ISN)2v$-^dCx?`>DZ}5Voe|~kl6W&w_qkkMR+0VWI zEaK2A$V6moByfRUsndzgt$xtJkl~ZztVw?mSORMsr;8$6Hrb>0t8+xHofle32(z@* z4Em|OyacsgHSD5S8u6+$YtntcUKtu{HK!~-C{KU4?uoTxN_Q9jq=a~h^+5Vq*6MQp zP;H3(7Z&~|e|E{l?A=XCETIdH71&Wu$;0Ih)U7~_#N@-FLvy%>;3F)kk-@V^{fsL{ zx-(nic~gU0AlmyQJ;8!L2AlW7lT;(Y>gKVqr-)kJzbi1&i|SV-%6vh3`B8?;@cunG z_|kt!jQ{jcqo1HrEz3_simWyxh>HtJJ51UWtOZHIy6XR5iaF{ji2=G84k;%9rvlvVa?U=@KL7#%4gg7wcUCJM3X87_003ZYkr-Hi@kbAZrIlV+*LwgE zaqkuAn-IgL0T~OE;+W`n zDs;W(erlYJ57J0~)7!wLd{en4P9%jZU&0@Z1r}XcMUYVr5B$lUbb zN{e6Z8Ua;L=`G$R+$(;=Owuo?Z0aZbth;9Zl>H%Hb5U7;7r~4d-^}hoC!}0Yn_}V? z6H%k163zng6HYLOTgSuRgMctHg8wCrJp*|3g*YFr>sqCHnqu*kuA#|pxPOrY znC2kN7W9s9$>}JU1U5FBIzLtd`_Wo$bsR^bEBAPYz%__yB@w~kDO#AWtuMpP1z8NK zpD$ecQh%xWr5dc;D4%*C*+Qh&NffUuRMtqH z?{<{0xqCY)4d|d(dKqs}#dHckc2AndNJ7plJ z-nOfM$u?4u&7@&`8b-+>%34DM!|a0Eg+bRt>gz0(Iy>DNLEW-@Cg1(gcgs}DU9sph zO~zJn)WWKFV7g+XQ;2Oq8=(F6%HayTXO!JhcCYqNJ`%i3q~ROjAiMeQOFXHb#Obq0 zn%q#RcZJTAONIz>DFvXX+MeN68i{l$$KxA+4{wDi`PrDm8PSkz{wfU>)g+~dS$)e$ z)}{a%QCfam0$E5B7&vDsL?lymleKqa&vsqMA>?#AnJu*Z-CEg8N2pHfYQOV3peJLg z#=7gj6j8jcjT6geX@OAVYHZ+Dw!M{!vhTi~+?~;Fi zW>DWlIDEIxZc6K;cI(Tvpwvt_ zAe7vtxYmJK%11Hkw*2f_E6inlK!YQHT6bW!{2OmC#jS zf@>f-Fn`Vy#;O_*3n=MJsFi1`cj=LIhfCe@lY6}^sT+x1GS4~BIsBAalzh8lGPqOa z!?DlCHyHxoEwQ2=%5|C^g`ytm;IR(~1kUiJdu$~^0ub$M0@OB&O4m?Sfjbj_zV8Nw zx!pfCwBkxGcSbb3FGSv^;6aCbO7d8mExhMQU5@szxGjW}=BpJ@n6FFybg{hmny3+I zxs(BCor)qy77J(SA9S(ro_LkysCrCc^fq|dCG@Z`Y)6c5U!DoaImME?*7 zweiJHZUru9ag;3&H7s;HP2bn;#cD&6m<4~g%l6nk>_b)yaQUwlE`O;ga;UVjK?l~u z8*Wh(+F~&xK<*Wn&80qTaU2~=nbB5G)Yd5N!zqny3l&_vuum#9o`kbatA z0xY}RrNTK?>#9s9QU}T|4^V+qeqK?`*L!aqKV1vn9rrhQ%`5yQIBs!;_<&Bi4T%%_ zo>vI_6^ox{+^*9J8nz{}4U&8)KNvlsW5Kx>=x-}fcn%;VD;c#N!;}6l!vX8t>;sV1 z1p*E@p{_`tHH~1_(wH=VLPh&zV47dopEFJ2k(i(=2Dz|SC_8gZT)Y>i%4V|C(0FTP zQK6abH6F)&WNf#VhcHwVfA%oVoLT0SULBsPqe` z%%7AN4cm~bCpN|KAHey};fy|%8kQ%MBg7&drK0Jb&!;i4+4Fn?4fBftCmeKtDy89J z!)TxCrQ&prYmT4b`6ICgRbcQieoFa0Ncf*E@3I801rp;d{maZD1~Ge z5_3{(oA7PqGYo{;UpMjP4HD=a)5>5Tw`lB_{1D`Ygx_D9bWaJ<=pOT8gmB;|C8wBr z=?;2-8a6L>@bE&h30r-m)Rbz2<@pqg%4NdI*PPSwLc7!1Tls5-3Si@ss~)A~u_{iB zYF4!Wm~8ycJ9_9nEpigBiSp97MYU{y2Jv|JG-($g%#e{7z0Nc!yY_9071p?xy2~NC zTLM@KeH-TN6Vy`4Y+6H_siuoZTMz41EUv~7MyjmZ=6NhW9bx12ahpa+%mL1{Qb3rId|5C-H z`2c|aUp1O$Z*QvG3szMDMEVy%MB&CwiRLWRUe^jQPD?G?f6H2@?U5+*ML6{UK@wbl z%ERoy)ukey&`cQIYOiG&GnIK|*9+1S+WA9!LEdZK95=kW=ZT7-a9v^5@Et@5HlzCV zNO#Sa34VixXl}yTGra|t9VHCm7-omK1d`jbBqTMk3rZ2=I4=-aTrn7=VIaX+L^wXU zn0dl6b&E47(82R{A%YsjXMSz(n+bk2uJ_F}riWHR%N25*_Mn)qk^BUmG!_0%?}|`M m0Rle*KL7#%4gg7wcUCJM3X87_003ZYlky8p2K5R60002kjy_5N diff --git a/tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol b/tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol index 96f614880b..e3bf6f97f3 100644 --- a/tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol +++ b/tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol @@ -49,4 +49,9 @@ contract Test { _; } while (i < 1); } + + modifier issue2619(bool b) { + while (b ? false : b) {} + _; + } } diff --git a/tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol-0.7.6.zip b/tests/e2e/detectors/test_data/incorrect-modifier/0.7.6/modifier_default.sol-0.7.6.zip index c1c0e0fae4eba9d7535e789c179de67edd9764b2..c223d55d1f7d027c8fdc60d223707dfa8da471bb 100644 GIT binary patch delta 2951 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