soot-oss / SootUp

A new version of Soot with a completely overhauled architecture
https://soot-oss.github.io/SootUp/
GNU Lesser General Public License v2.1
578 stars 77 forks source link

[Bug]: Calling MutableBlockStmtGraph.removeNode(node) might invalidate the StmtGraph #1112

Open stschott opened 3 hours ago

stschott commented 3 hours ago

What happened?

Calling MutableBlockStmtGraph.removeNode(node) might invalidate the StmtGraph. See log.

Version

Latest develop branch

Relevant log output

Caused by: java.lang.IllegalStateException: visualize invalid StmtGraph: http://magjac.com/graphviz-visual-editor/?dot=digraph+G+%7B%0A%09compound%3Dtrue%0A%09labelloc%3Db%0A%09style%3Dfilled%0A%09color%3Dgray90%0A%09node+%5Bshape%3Dbox%2Cstyle%3Dfilled%2Ccolor%3Dwhite%5D%0A%09edge+%5Bfontsize%3D10%2Carrowsize%3D1.5%2Cfontcolor%3Dgrey40%5D%0A%09fontsize%3D10%0A%0A%2F%2F++lines+%5B589%3A+589%5D+%0A%09subgraph+cluster_1862383967+%7B+%0A%09%09label+%3D+%22Block+%231%22%0A%09%091263634860%5Blabel%3D%22l0+%3A%3D+%40parameter0%3A+int%5B%5D%22%2Cshape%3DMdiamond%2Ccolor%3Dgrey50%2Cfillcolor%3Dwhite%5D%0A%09%09464224872%5Blabel%3D%22l1+%3A%3D+%40parameter1%3A+short%5B%5D%22%5D%0A%09%092052910813%5Blabel%3D%22l2+%3A%3D+%40parameter2%3A+java.io.InputStream%22%5D%0A%0A%09%091263634860+-%3E+464224872+-%3E+2052910813%0A%09%7D%0A%092052910813%3As+-%3E+1845623216%3An%0A%0A%2F%2F++lines+%5B589%3A+591%5D+%0A%09subgraph+cluster_1823541245+%7B+%0A%09%09label+%3D+%22Block+%232%22%0A%09%091845623216%5Blabel%3D%22l3%230+%3D+staticinvoke+%26lt%3Borg.bouncycastle.crypto.tls.TlsUtils%3A+short+readUint8%28java.io.InputStream%29%26gt%3B%28l2%29%22%5D%0A%09%09731829978%5Blabel%3D%22switch%28l3%230%29+%7B+++++case+1%3A+++++case+2%3A+++++case+3%3A+++++default%3A++%7D%22%5D%0A%0A%09%091845623216+-%3E+731829978%0A%09%7D%0A%09731829978%3As+-%3E+659590237%3An%5Blabel%3D%22case+1%22%5D%0A%09731829978%3As+-%3E+1332757905%3An%5Blabel%3D%22case+2%22%5D%0A%09731829978%3As+-%3E+1507118393%3An%5Blabel%3D%22case+3%22%5D%0A%09731829978%3As+-%3E+1439632660%3An%0A%09%2F%2Fexceptional+edges+%0A%09731829978%3Ae+-%3E+665698670%3An+%5Blabel%3D%22%09java.lang.RuntimeException%22color%3Dred%2Cltail%3D%22cluster_1823541245%22%5D%0A%0A%2F%2F++lines+%5B657%3A+657%5D+%0A%09subgraph+cluster_1774720883+%7B+%0A%09%09label+%3D+%22Block+%233%22%0A%09%091439632660%5Blabel%3D%22%24stack28+%3D+new+org.bouncycastle.crypto.tls.TlsFatalAlert%22%5D%0A%09%7D%0A%091439632660%3As+-%3E+1209411469%3An%0A%09%2F%2Fexceptional+edges+%0A%091439632660%3Ae+-%3E+665698670%3An+%5Blabel%3D%22%09java.lang.RuntimeException%22color%3Dred%2Cltail%3D%22cluster_1774720883%22%5D%0A%0A%2F%2F++lines+%5B657%3A+657%5D+%0A%09subgraph+cluster_1986417638+%7B+%0A%09%09label+%3D+%22Block+%234%22%0A%09%091209411469%5Blabel%3D%22specialinvoke+%24stack28.%26lt%3Borg.bouncycastle.crypto.tls.TlsFatalAlert%3A+void+%26lt%3Binit%26gt%3B%28short%29%26gt%3B%2847%29%22%5D%0A%09%7D%0A%091209411469%3As+-%3E+970535245%3An%0A%0A%2F%2F++lines+%5B657%3A+657%5D+%0A%09subgraph+cluster_1652764753+%7B+%0A%09%09label+%3D+%22Block+%235%22%0A%09%09970535245%5Blabel%3D%22throw+%24stack28%22%2Cshape%3DMdiamond%2Ccolor%3Dgrey50%2Cfillcolor%3Dwhite%5D%0A%09%7D%0A%0A%2F%2F++lines+%5B641%3A+642%5D+%0A%09subgraph+cluster_1848125895+%7B+%0A%09%09label+%3D+%22Block+%236%22%0A%09%091507118393%5Blabel%3D%22l4%232+%3D+staticinvoke+%26lt%3Borg.bouncycastle.crypto.tls.TlsUtils%3A+int+readUint16%28java.io.InputStream%29%26gt%3B%28l2%29%22%5D%0A%09%091097324923%5Blabel%3D%22%24stack16+%3D+staticinvoke+%26lt%3Borg.bouncycastle.crypto.tls.NamedCurve%3A+boolean+refersToASpecificNamedCurve%28int%29%26gt%3B%28l4%232%29%22%5D%0A%09%09351962798%5Blabel%3D%22if+%24stack16+%21%3D+0%22%5D%0A%0A%09%091507118393+-%3E+1097324923+-%3E+351962798%0A%09%7D%0A%09351962798%3As+-%3E+1703696921%3An%5Blabel%3D%22false%22%5D%0A%09351962798%3As+-%3E+1070044969%3An%5Blabel%3D%22true%22%5D%0A%09%2F%2Fexceptional+edges+%0A%09351962798%3Ae+-%3E+665698670%3An+%5Blabel%3D%22%09java.lang.RuntimeException%22color%3Dred%2Cltail%3D%22cluster_1848125895%22%5D%0A%0A%2F%2F++lines+%5B652%3A+654%5D+%0A%09subgraph+cluster_1440621772+%7B+%0A%09%09label+%3D+%22Block+%237%22%0A%09%091070044969%5Blabel%3D%22staticinvoke+%26lt%3Borg.bouncycastle.crypto.tls.TlsECCUtils%3A+void+checkNamedCurve%28int%5B%5D%2Cint%29%26gt%3B%28l0%2C+l4%232%29%22%5D%0A%09%09888557915%5Blabel%3D%22%24stack17+%3D+staticinvoke+%26lt%3Borg.bouncycastle.crypto.tls.TlsECCUtils%3A+org.bouncycastle.crypto.params.ECDomainParameters+getParametersForNamedCurve%28int%29%26gt%3B%28l4%232%29%22%5D%0A%0A%09%091070044969+-%3E+888557915%0A%09%7D%0A%09888557915%3As+-%3E+28094269%3An%0A%09%2F%2Fexceptional+edges+%0A%09888557915%3Ae+-%3E+665698670%3An+%5Blabel%3D%22%09java.lang.RuntimeException%22color%3Dred%2Cltail%3D%22cluster_1440621772%22%5D%0A%0A%2F%2F++lines+%5B654%3A+654%5D+%0A%09subgraph+cluster_821576394+%7B+%0A%09%09label+%3D+%22Block+%238%22%0A%09%0928094269%5Blabel%3D%22return+%24stack17%22%2Cshape%3DMdiamond%2Ccolor%3Dgrey50%2Cfillcolor%3Dwhite%5D%0A%09%7D%0A%0A%2F%2F++lines+%5B649%3A+649%5D+%0A%09subgraph+cluster_1787189503+%7B+%0A%09%09label+%3D+%22Block+%239%22%0A%09%091703696921%5Blabel%3D%22%24stack18+%3D+new+org.bouncycastle.crypto.tls.TlsFatalAlert%22%5D%0A%09%7D%0A%091703696921%3As+-%3E+2115628016%3An%0A%09%2F%2Fexceptional+edges+%0A%091703696921%3Ae+-%3E+665698670%3An+%5Blabel%3D%22%09java.lang.RuntimeException%22color%3Dred%2Cltail%3D%22cluster_1787189503%22%5D%0A%0A%2F%2F++lines+%5B649%3A+649%5D+%0A%09subgraph+cluster_1107985860+%7B+%0A%09%09label+%3D+%22Block+%2310%22%0A%09%092115628016%5Blabel%3D%22specialinvoke+%24stack18.%26lt%3Borg.bouncycastle.crypto.tls.TlsFatalAlert%3A+void+%26lt%3Binit%26gt%3B%28short%29%26gt%3B%2847%29%22%5D%0A%09%091171434979%5Blabel%3D%22throw+%24stack18%22%2Cshape%3DMdiamond%2Ccolor%3Dgrey50%2Cfillcolor%3Dwhite%5D%0A%0A%09%092115628016+-%3E+1171434979%0A%09%7D%0A%0A%2F%2F++lines+%5B609%3A+613%5D+%0A%09subgraph+cluster_363023858+%7B+%0A%09%09label+%3D+%22Block+%2311%22%0A%09%091332757905%5Blabel%3D%22staticinvoke+%26lt%3Borg.bouncycastle.crypto.tls.TlsECCUtils%3A+void+checkNamedCurve%28int%5B%5D%2Cint%29%26gt%3B%28l0%2C+65282%29%22%5D%0A%09%09380274260%5Blabel%3D%22l4%231+%3D+staticinvoke+%26lt%3Borg.bouncycastle.crypto.tls.TlsUtils%3A+int+readUint16%28java.io.InputStream%29%26gt%3B%28l2%29%22%5D%0A%09%09310016558%5Blabel%3D%22l5%231+%3D+staticinvoke+%26lt%3Borg.bouncycastle.crypto.tls.TlsUtils%3A+short+readUint8%28java.io.InputStream%29%26gt%3B%28l2%29%22%5D%0A%09%091261764601%5Blabel%3D%22%24stack19+%3D+staticinvoke+%26lt%3Borg.bouncycastle.crypto.tls.ECBasisType%3A+boolean+isValid%28short%29%26gt%3B%28l5%231%29%22%5D%0A%09%09669284403%5Blabel%3D%22if+%24stack19+%21%3D+0%22%5D%0A%0A%09%091332757905+-%3E+380274260+-%3E+310016558+-%3E+1261764601+-%3E+669284403%0A%09%7D%0A%09669284403%3As+-%3E+527804008%3An%5Blabel%3D%22false%22%5D%0A%09669284403%3As+-%3E+660339123%3An%5Blabel%3D%22true%22%5D%0A%09%2F%2Fexceptional+edges+%0A%09669284403%3Ae+-%3E+665698670%3An+%5Blabel%3D%22%09java.lang.RuntimeException%22color%3Dred%2Cltail%3D%22cluster_363023858%22%5D%0A%0A%2F%2F++lines+%5B618%3A+619%5D+%0A%09subgraph+cluster_1208825205+%7B+%0A%09%09label+%3D+%22Block+%2312%22%0A%09%09660339123%5Blabel%3D%22l6%231+%3D+staticinvoke+%26lt%3Borg.bouncycastle.crypto.tls.TlsECCUtils%3A+int+readECExponent%28int%2Cjava.io.InputStream%29%26gt%3B%28l4%231%2C+l2%29%22%5D%0A%09%09115433442%5Blabel%3D%22l7%231+%3D+-1%22%5D%0A%09%09519492428%5Blabel%3D%22l8%231+%3D+-1%22%5D%0A%09%09294111720%5Blabel%3D%22if+l5%231+%21%3D+2%22%5D%0A%0A%09%09660339123+-%3E+115433442+-%3E+519492428+-%3E+294111720%0A%09%7D%0A%09294111720%3As+-%3E+1760670079%3An%5Blabel%3D%22false%22%5D%0A%09294111720%3As+-%3E+541698497%3An%5Blabel%3D%22true%22%5D%0A%09%2F%2Fexceptional+edges+%0A%09294111720%3Ae+-%3E+665698670%3An+%5Blabel%3D%22%09java.lang.RuntimeException%22color%3Dred%2Cltail%3D%22cluster_1208825205%22%5D%0A%0A%2F%2F++lines+%5B621%3A+622%5D+%0A%09subgraph+cluster_120360571+%7B+%0A%09%09label+%3D+%22Block+%2313%22%0A%09%091760670079%5Blabel%3D%22l7%231+%3D+staticinvoke+%26lt%3Borg.bouncycastle.crypto.tls.TlsECCUtils%3A+int+readECExponent%28int%2Cjava.io.InputStream%29%26gt%3B%28l4%231%2C+l2%29%22%5D%0A%09%091176968662%5Blabel%3D%22l8%231+%3D+staticinvoke+%26lt%3Borg.bouncycastle.crypto.tls.TlsECCUtils%3A+int+readECExponent%28int%2Cjava.io.InputStream%29%26gt%3B%28l4%231%2C+l2%29%22%5D%0A%0A%09%091760670079+-%3E+1176968662%0A%09%7D%0A%091176968662%3As+-%3E+541698497%3An%0A%09%2F%2Fexceptional+edges+%0A%091176968662%3Ae+-%3E+665698670%3An+%5Blabel%3D%22%09java.lang.RuntimeException%22color%3Dred%2Cltail%3D%22cluster_120360571%22%5D%0A%0A%2F%2F++lines+%5B625%3A+631%5D+%0A%09subgraph+cluster_1125964210+%7B+%0A%09%09label+%3D+%22Block+%2314%22%0A%09%09541698497%5Blabel%3D%22l9%231+%3D+staticinvoke+%26lt%3Borg.bouncycastle.crypto.tls.TlsECCUtils%3A+java.math.BigInteger+readECFieldElement%28int%2Cjava.io.InputStream%29%26gt%3B%28l4%231%2C+l2%29%22%5D%0A%09%09691098155%5Blabel%3D%22l10%231+%3D+staticinvoke+%26lt%3Borg.bouncycastle.crypto.tls.TlsECCUtils%3A+java.math.BigInteger+readECFieldElement%28int%2Cjava.io.InputStream%29%26gt%3B%28l4%231%2C+l2%29%22%5D%0A%09%091168420930%5Blabel%3D%22l11%231+%3D+staticinvoke+%26lt%3Borg.bouncycastle.crypto.tls.TlsUtils%3A+byte%5B%5D+readOpaque8%28java.io.InputStream%29%26gt%3B%28l2%29%22%5D%0A%09%091872973138%5Blabel%3D%22l12+%3D+staticinvoke+%26lt%3Borg.bouncycastle.crypto.tls.TlsECCUtils%3A+java.math.BigInteger+readECParameter%28java.io.InputStream%29%26gt%3B%28l2%29%22%5D%0A%09%091740223770%5Blabel%3D%22l13+%3D+staticinvoke+%26lt%3Borg.bouncycastle.crypto.tls.TlsECCUtils%3A+java.math.BigInteger+readECParameter%28java.io.InputStream%29%26gt%3B%28l2%29%22%5D%0A%09%09335580595%5Blabel%3D%22if+l5%231+%21%3D+2%22%5D%0A%0A%09%09541698497+-%3E+691098155+-%3E+1168420930+-%3E+1872973138+-%3E+1740223770+-%3E+335580595%0A%09%7D%0A%09335580595%3As+-%3E+1661210650%3An%5Blabel%3D%22false%22%5D%0A%09335580595%3As+-%3E+234250762%3An%5Blabel%3D%22true%22%5D%0A%09%2F%2Fexceptional+edges+%0A%09335580595%3Ae+-%3E+665698670%3An+%5Blabel%3D%22%09java.lang.RuntimeException%22color%3Dred%2Cltail%3D%22cluster_1125964210%22%5D%0A%0A%2F%2F++lines+%5B631%3A+631%5D+%0A%09subgraph+cluster_1585239756+%7B+%0A%09%09label+%3D+%22Block+%2315%22%0A%09%09234250762%5Blabel%3D%22%24stack20+%3D+new+org.bouncycastle.math.ec.ECCurve%24F2m%22%5D%0A%09%7D%0A%09234250762%3As+-%3E+91323447%3An%0A%09%2F%2Fexceptional+edges+%0A%09234250762%3Ae+-%3E+665698670%3An+%5Blabel%3D%22%09java.lang.RuntimeException%22color%3Dred%2Cltail%3D%22cluster_1585239756%22%5D%0A%0A%2F%2F++lines+%5B631%3A+631%5D+%0A%09subgraph+cluster_2143582219+%7B+%0A%09%09label+%3D+%22Block+%2316%22%0A%09%0991323447%5Blabel%3D%22specialinvoke+%24stack20.%26lt%3Borg.bouncycastle.math.ec.ECCurve%24F2m%3A+void+%26lt%3Binit%26gt%3B%28int%2Cint%2Cjava.math.BigInteger%2Cjava.math.BigInteger%2Cjava.math.BigInteger%2Cjava.math.BigInteger%29%26gt%3B%28l4%231%2C+l6%231%2C+l9%231%2C+l10%231%2C+l12%2C+l13%29%22%5D%0A%09%7D%0A%0991323447%3As+-%3E+194481424%3An%0A%0A%2F%2F++lines+%5B631%3A+631%5D+%0A%09subgraph+cluster_1605851606+%7B+%0A%09%09label+%3D+%22Block+%2317%22%0A%09%091661210650%5Blabel%3D%22%24stack20+%3D+new+org.bouncycastle.math.ec.ECCurve%24F2m%22%5D%0A%09%7D%0A%091661210650%3As+-%3E+1006751649%3An%0A%09%2F%2Fexceptional+edges+%0A%091661210650%3Ae+-%3E+665698670%3An+%5Blabel%3D%22%09java.lang.RuntimeException%22color%3Dred%2Cltail%3D%22cluster_1605851606%22%5D%0A%0A%2F%2F++lines+%5B631%3A+631%5D+%0A%09subgraph+cluster_682910755+%7B+%0A%09%09label+%3D+%22Block+%2318%22%0A%09%091006751649%5Blabel%3D%22specialinvoke+%24stack20.%26lt%3Borg.bouncycastle.math.ec.ECCurve%24F2m%3A+void+%26lt%3Binit%26gt%3B%28int%2Cint%2Cint%2Cint%2Cjava.math.BigInteger%2Cjava.math.BigInteger%2Cjava.math.BigInteger%2Cjava.math.BigInteger%29%26gt%3B%28l4%231%2C+l6%231%2C+l7%231%2C+l8%231%2C+l9%231%2C+l10%231%2C+l12%2C+l13%29%22%5D%0A%09%091646371921%5Blabel%3D%22goto%22%5D%0A%0A%09%091006751649+-%3E+1646371921%0A%09%7D%0A%091646371921%3As+-%3E+194481424%3An%0A%0A%2F%2F++lines+%5B635%3A+637%5D+%0A%09subgraph+cluster_1309129055+%7B+%0A%09%09label+%3D+%22Block+%2319%22%0A%09%09194481424%5Blabel%3D%22l15+%3D+staticinvoke+%26lt%3Borg.bouncycastle.crypto.tls.TlsECCUtils%3A+org.bouncycastle.math.ec.ECPoint+deserializeECPoint%28short%5B%5D%2Corg.bouncycastle.math.ec.ECCurve%2Cbyte%5B%5D%29%26gt%3B%28l1%2C+%24stack20%2C+l11%231%29%22%5D%0A%09%09428696898%5Blabel%3D%22%24stack21+%3D+new+org.bouncycastle.crypto.params.ECDomainParameters%22%5D%0A%0A%09%09194481424+-%3E+428696898%0A%09%7D%0A%09428696898%3As+-%3E+1076984738%3An%0A%0A%2F%2F++lines+%5B637%3A+637%5D+%0A%09subgraph+cluster_85748029+%7B+%0A%09%09label+%3D+%22Block+%2320%22%0A%09%091076984738%5Blabel%3D%22specialinvoke+%24stack21.%26lt%3Borg.bouncycastle.crypto.params.ECDomainParameters%3A+void+%26lt%3Binit%26gt%3B%28org.bouncycastle.math.ec.ECCurve%2Corg.bouncycastle.math.ec.ECPoint%2Cjava.math.BigInteger%2Cjava.math.BigInteger%29%26gt%3B%28%24stack20%2C+l15%2C+l12%2C+l13%29%22%5D%0A%09%7D%0A%091076984738%3As+-%3E+1581267786%3An%0A%0A%2F%2F++lines+%5B637%3A+637%5D+%0A%09subgraph+cluster_352083716+%7B+%0A%09%09label+%3D+%22Block+%2321%22%0A%09%091581267786%5Blabel%3D%22return+%24stack21%22%2Cshape%3DMdiamond%2Ccolor%3Dgrey50%2Cfillcolor%3Dwhite%5D%0A%09%7D%0A%0A%2F%2F++lines+%5B615%3A+615%5D+%0A%09subgraph+cluster_1222768327+%7B+%0A%09%09label+%3D+%22Block+%2322%22%0A%09%09527804008%5Blabel%3D%22%24stack23+%3D+new+org.bouncycastle.crypto.tls.TlsFatalAlert%22%5D%0A%09%7D%0A%09527804008%3As+-%3E+1320105604%3An%0A%09%2F%2Fexceptional+edges+%0A%09527804008%3Ae+-%3E+665698670%3An+%5Blabel%3D%22%09java.lang.RuntimeException%22color%3Dred%2Cltail%3D%22cluster_1222768327%22%5D%0A%0A%2F%2F++lines+%5B615%3A+615%5D+%0A%09subgraph+cluster_997850486+%7B+%0A%09%09label+%3D+%22Block+%2323%22%0A%09%091320105604%5Blabel%3D%22specialinvoke+%24stack23.%26lt%3Borg.bouncycastle.crypto.tls.TlsFatalAlert%3A+void+%26lt%3Binit%26gt%3B%28short%29%26gt%3B%2847%29%22%5D%0A%09%7D%0A%091320105604%3As+-%3E+1935122449%3An%0A%0A%2F%2F++lines+%5B615%3A+615%5D+%0A%09subgraph+cluster_939199469+%7B+%0A%09%09label+%3D+%22Block+%2324%22%0A%09%091935122449%5Blabel%3D%22throw+%24stack23%22%2Cshape%3DMdiamond%2Ccolor%3Dgrey50%2Cfillcolor%3Dwhite%5D%0A%09%7D%0A%0A%2F%2F++lines+%5B595%3A+603%5D+%0A%09subgraph+cluster_716487794+%7B+%0A%09%09label+%3D+%22Block+%2325%22%0A%09%09659590237%5Blabel%3D%22staticinvoke+%26lt%3Borg.bouncycastle.crypto.tls.TlsECCUtils%3A+void+checkNamedCurve%28int%5B%5D%2Cint%29%26gt%3B%28l0%2C+65281%29%22%5D%0A%09%09932582590%5Blabel%3D%22l4%230+%3D+staticinvoke+%26lt%3Borg.bouncycastle.crypto.tls.TlsECCUtils%3A+java.math.BigInteger+readECParameter%28java.io.InputStream%29%26gt%3B%28l2%29%22%5D%0A%09%0951152513%5Blabel%3D%22%24stack24+%3D+virtualinvoke+l4%230.%26lt%3Bjava.math.BigInteger%3A+int+bitLength%28%29%26gt%3B%28%29%22%5D%0A%09%092101153819%5Blabel%3D%22l5%230+%3D+staticinvoke+%26lt%3Borg.bouncycastle.crypto.tls.TlsECCUtils%3A+java.math.BigInteger+readECFieldElement%28int%2Cjava.io.InputStream%29%26gt%3B%28%24stack24%2C+l2%29%22%5D%0A%09%091828873985%5Blabel%3D%22%24stack25+%3D+virtualinvoke+l4%230.%26lt%3Bjava.math.BigInteger%3A+int+bitLength%28%29%26gt%3B%28%29%22%5D%0A%09%091558103808%5Blabel%3D%22l6%230+%3D+staticinvoke+%26lt%3Borg.bouncycastle.crypto.tls.TlsECCUtils%3A+java.math.BigInteger+readECFieldElement%28int%2Cjava.io.InputStream%29%26gt%3B%28%24stack25%2C+l2%29%22%5D%0A%09%09462039519%5Blabel%3D%22l7%230+%3D+staticinvoke+%26lt%3Borg.bouncycastle.crypto.tls.TlsUtils%3A+byte%5B%5D+readOpaque8%28java.io.InputStream%29%26gt%3B%28l2%29%22%5D%0A%09%091470966439%5Blabel%3D%22l8%230+%3D+staticinvoke+%26lt%3Borg.bouncycastle.crypto.tls.TlsECCUtils%3A+java.math.BigInteger+readECParameter%28java.io.InputStream%29%26gt%3B%28l2%29%22%5D%0A%09%09706895319%5Blabel%3D%22l9%230+%3D+staticinvoke+%26lt%3Borg.bouncycastle.crypto.tls.TlsECCUtils%3A+java.math.BigInteger+readECParameter%28java.io.InputStream%29%26gt%3B%28l2%29%22%5D%0A%09%09638169719%5Blabel%3D%22%24stack26+%3D+new+org.bouncycastle.math.ec.ECCurve%24Fp%22%5D%0A%0A%09%09659590237+-%3E+932582590+-%3E+51152513+-%3E+2101153819+-%3E+1828873985+-%3E+1558103808+-%3E+462039519+-%3E+1470966439+-%3E+706895319+-%3E+638169719%0A%09%7D%0A%09638169719%3As+-%3E+1920907467%3An%0A%09%2F%2Fexceptional+edges+%0A%09638169719%3Ae+-%3E+665698670%3An+%5Blabel%3D%22%09java.lang.RuntimeException%22color%3Dred%2Cltail%3D%22cluster_716487794%22%5D%0A%0A%2F%2F++lines+%5B603%3A+603%5D+%0A%09subgraph+cluster_176342513+%7B+%0A%09%09label+%3D+%22Block+%2326%22%0A%09%091920907467%5Blabel%3D%22specialinvoke+%24stack26.%26lt%3Borg.bouncycastle.math.ec.ECCurve%24Fp%3A+void+%26lt%3Binit%26gt%3B%28java.math.BigInteger%2Cjava.math.BigInteger%2Cjava.math.BigInteger%2Cjava.math.BigInteger%2Cjava.math.BigInteger%29%26gt%3B%28l4%230%2C+l5%230%2C+l6%230%2C+l8%230%2C+l9%230%29%22%5D%0A%09%7D%0A%091920907467%3As+-%3E+611643685%3An%0A%0A%2F%2F++lines+%5B604%3A+605%5D+%0A%09subgraph+cluster_473524237+%7B+%0A%09%09label+%3D+%22Block+%2327%22%0A%09%09611643685%5Blabel%3D%22l11%230+%3D+staticinvoke+%26lt%3Borg.bouncycastle.crypto.tls.TlsECCUtils%3A+org.bouncycastle.math.ec.ECPoint+deserializeECPoint%28short%5B%5D%2Corg.bouncycastle.math.ec.ECCurve%2Cbyte%5B%5D%29%26gt%3B%28l1%2C+%24stack26%2C+l7%230%29%22%5D%0A%09%091052253947%5Blabel%3D%22%24stack27+%3D+new+org.bouncycastle.crypto.params.ECDomainParameters%22%5D%0A%09%09110053477%5Blabel%3D%22specialinvoke+%24stack27.%26lt%3Borg.bouncycastle.crypto.params.ECDomainParameters%3A+void+%26lt%3Binit%26gt%3B%28org.bouncycastle.math.ec.ECCurve%2Corg.bouncycastle.math.ec.ECPoint%2Cjava.math.BigInteger%2Cjava.math.BigInteger%29%26gt%3B%28%24stack26%2C+l11%230%2C+l8%230%2C+l9%230%29%22%5D%0A%0A%09%09611643685+-%3E+1052253947+-%3E+110053477%0A%09%7D%0A%09110053477%3As+-%3E+1826334428%3An%0A%0A%2F%2F++lines+%5B605%3A+605%5D+%0A%09subgraph+cluster_1850954068+%7B+%0A%09%09label+%3D+%22Block+%2328%22%0A%09%091826334428%5Blabel%3D%22return+%24stack27%22%2Cshape%3DMdiamond%2Ccolor%3Dgrey50%2Cfillcolor%3Dwhite%5D%0A%09%7D%0A%0A%7D
    at sootup.core.graph.StmtGraph.validateStmtConnectionsInGraph(StmtGraph.java:242)
    at sootup.java.bytecode.frontend.conversion.AsmMethodSource.resolveBody(AsmMethodSource.java:238)
    ... 74 more
Caused by: java.lang.IndexOutOfBoundsException: Cant get the tail - this Block has no assigned Stmts.
    at sootup.core.graph.MutableBasicBlockImpl.getTail(MutableBasicBlockImpl.java:244)
    at sootup.core.graph.MutableBlockStmtGraph.lambda$predecessors$16(MutableBlockStmtGraph.java:1435)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
    at java.base/java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1092)
    at sootup.core.graph.MutableBlockStmtGraph.predecessors(MutableBlockStmtGraph.java:1435)
    at sootup.core.graph.StmtGraph.validateStmtConnectionsInGraph(StmtGraph.java:190)
    ... 75 more
swissiety commented 3 hours ago

(additionally) the dot graph is missing a blcok as well