mirror of
https://github.com/ysoftdevs/DependencyCheck.git
synced 2026-05-02 05:04:29 +02:00
documentation version 1.4.5
This commit is contained in:
@@ -12,7 +12,7 @@
|
||||
<div class="separator"> </div>
|
||||
<table class="report">
|
||||
<thead><tr> <td class="heading">Classes in this File</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead>
|
||||
<tr><td><a href="org.owasp.dependencycheck.data.nvdcve.CveDB.html">CveDB</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">45%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:45px"><span class="text">201/437</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">52%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:52px"><span class="text">74/140</span></div></div></td></tr></table></td><td class="value"><span class="hidden">5.636363636363637;</span>5.636</td></tr>
|
||||
<tr><td><a href="org.owasp.dependencycheck.data.nvdcve.CveDB.html">CveDB</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">47%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:47px"><span class="text">206/437</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">57%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:57px"><span class="text">80/140</span></div></div></td></tr></table></td><td class="value"><span class="hidden">5.636363636363637;</span>5.636</td></tr>
|
||||
|
||||
</table>
|
||||
<div class="separator"> </div>
|
||||
@@ -220,7 +220,7 @@
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 111</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">protected</span> Connection getConnection() {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 112</td> <td class="nbHitsCovered"> 47</td> <td class="src"><pre class="src"> <span class="keyword">return</span> conn;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 112</td> <td class="nbHitsCovered"> 50</td> <td class="src"><pre class="src"> <span class="keyword">return</span> conn;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 113</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 114</td> <td class="nbHits"> </td>
|
||||
@@ -258,7 +258,7 @@
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 132</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">synchronized</span> <span class="keyword">void</span> close() {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 133</td> <td class="nbHitsCovered"><a title="Line 133: Conditional coverage 100% (2/2)."> 22</a></td> <td class="src"><pre class="src"> <a title="Line 133: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (conn != <span class="keyword">null</span>) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 133</td> <td class="nbHitsCovered"><a title="Line 133: Conditional coverage 100% (2/2)."> 26</a></td> <td class="src"><pre class="src"> <a title="Line 133: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (conn != <span class="keyword">null</span>) {</a></pre></td></tr>
|
||||
<tr> <td class="numLine"> 134</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 135</td> <td class="nbHitsCovered"> 13</td> <td class="src"><pre class="src"> conn.close();</pre></td></tr>
|
||||
@@ -272,7 +272,7 @@
|
||||
<tr> <td class="numLineCover"> 143</td> <td class="nbHitsCovered"> 13</td> <td class="src"><pre class="src"> conn = <span class="keyword">null</span>;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 144</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 145</td> <td class="nbHitsCovered"> 22</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 145</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 146</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 147</td> <td class="nbHits"> </td>
|
||||
@@ -331,10 +331,10 @@
|
||||
<td class="src"><pre class="src"> @SuppressWarnings(<span class="string">"FinalizeDeclaration"</span>)</pre></td></tr>
|
||||
<tr> <td class="numLine"> 175</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">protected</span> <span class="keyword">void</span> finalize() <span class="keyword">throws</span> Throwable {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 176</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> LOGGER.debug(<span class="string">"Entering finalize"</span>);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 177</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> close();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 178</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> <span class="keyword">super</span>.finalize();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 179</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 176</td> <td class="nbHitsCovered"> 13</td> <td class="src"><pre class="src"> LOGGER.debug(<span class="string">"Entering finalize"</span>);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 177</td> <td class="nbHitsCovered"> 13</td> <td class="src"><pre class="src"> close();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 178</td> <td class="nbHitsCovered"> 13</td> <td class="src"><pre class="src"> <span class="keyword">super</span>.finalize();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 179</td> <td class="nbHitsCovered"> 13</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 180</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 181</td> <td class="nbHits"> </td>
|
||||
@@ -397,11 +397,11 @@
|
||||
<tr> <td class="numLineCover"> 213</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> rs = ps.executeQuery();</pre></td></tr>
|
||||
<tr> <td class="numLine"> 214</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 215</td> <td class="nbHitsCovered"><a title="Line 215: Conditional coverage 100% (2/2)."> 134</a></td> <td class="src"><pre class="src"> <a title="Line 215: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rs.next()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 216</td> <td class="nbHitsCovered"> 130</td> <td class="src"><pre class="src"> <span class="keyword">final</span> VulnerableSoftware vs = <span class="keyword">new</span> VulnerableSoftware();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 217</td> <td class="nbHitsCovered"> 130</td> <td class="src"><pre class="src"> vs.setCpe(rs.getString(1));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 218</td> <td class="nbHitsCovered"> 130</td> <td class="src"><pre class="src"> cpe.add(vs);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 219</td> <td class="nbHitsCovered"> 130</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 215</td> <td class="nbHitsCovered"><a title="Line 215: Conditional coverage 100% (2/2)."> 152</a></td> <td class="src"><pre class="src"> <a title="Line 215: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rs.next()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 216</td> <td class="nbHitsCovered"> 148</td> <td class="src"><pre class="src"> <span class="keyword">final</span> VulnerableSoftware vs = <span class="keyword">new</span> VulnerableSoftware();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 217</td> <td class="nbHitsCovered"> 148</td> <td class="src"><pre class="src"> vs.setCpe(rs.getString(1));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 218</td> <td class="nbHitsCovered"> 148</td> <td class="src"><pre class="src"> cpe.add(vs);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 219</td> <td class="nbHitsCovered"> 148</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 220</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 221</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LOGGER.error(<span class="string">"An unexpected SQL Exception occurred; please see the verbose log for more details."</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 222</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LOGGER.debug(<span class="string">""</span>, ex);</span></pre></td></tr>
|
||||
@@ -438,8 +438,8 @@
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 242</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> ps = getConnection().prepareStatement(statementBundle.getString(<span class="string">"SELECT_VENDOR_PRODUCT_LIST"</span>));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 243</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> rs = ps.executeQuery();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 244</td> <td class="nbHitsCovered"><a title="Line 244: Conditional coverage 100% (2/2)."> 52776</a></td> <td class="src"><pre class="src"> <a title="Line 244: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rs.next()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 245</td> <td class="nbHitsCovered"> 52774</td> <td class="src"><pre class="src"> data.add(<span class="keyword">new</span> Pair<String, String>(rs.getString(1), rs.getString(2)));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 244</td> <td class="nbHitsCovered"><a title="Line 244: Conditional coverage 100% (2/2)."> 53116</a></td> <td class="src"><pre class="src"> <a title="Line 244: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rs.next()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 245</td> <td class="nbHitsCovered"> 53114</td> <td class="src"><pre class="src"> data.add(<span class="keyword">new</span> Pair<String, String>(rs.getString(1), rs.getString(2)));</pre></td></tr>
|
||||
<tr> <td class="numLine"> 246</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 247</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr>
|
||||
@@ -474,8 +474,8 @@
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 267</td> <td class="nbHitsCovered"> 13</td> <td class="src"><pre class="src"> ps = getConnection().prepareStatement(statementBundle.getString(<span class="string">"SELECT_PROPERTIES"</span>));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 268</td> <td class="nbHitsCovered"> 13</td> <td class="src"><pre class="src"> rs = ps.executeQuery();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 269</td> <td class="nbHitsCovered"><a title="Line 269: Conditional coverage 100% (2/2)."> 273</a></td> <td class="src"><pre class="src"> <a title="Line 269: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rs.next()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 270</td> <td class="nbHitsCovered"> 260</td> <td class="src"><pre class="src"> prop.setProperty(rs.getString(1), rs.getString(2));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 269</td> <td class="nbHitsCovered"><a title="Line 269: Conditional coverage 100% (2/2)."> 286</a></td> <td class="src"><pre class="src"> <a title="Line 269: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rs.next()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 270</td> <td class="nbHitsCovered"> 273</td> <td class="src"><pre class="src"> prop.setProperty(rs.getString(1), rs.getString(2));</pre></td></tr>
|
||||
<tr> <td class="numLine"> 271</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 272</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr>
|
||||
@@ -588,34 +588,34 @@
|
||||
<tr> <td class="numLine"> 349</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 350</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> <span class="keyword">final</span> Map<String, Boolean> vulnSoftware = <span class="keyword">new</span> HashMap<String, Boolean>();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 351</td> <td class="nbHitsCovered"><a title="Line 351: Conditional coverage 100% (2/2)."> 309</a></td> <td class="src"><pre class="src"> <a title="Line 351: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rs.next()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 352</td> <td class="nbHitsCovered"> 305</td> <td class="src"><pre class="src"> <span class="keyword">final</span> String cveId = rs.getString(1);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 353</td> <td class="nbHitsCovered"><a title="Line 353: Conditional coverage 100% (2/2)."> 305</a></td> <td class="src"><pre class="src"> <a title="Line 353: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (!currentCVE.equals(cveId)) { <span class="comment">//check for match and add</span></a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 354</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src"> <span class="keyword">final</span> Entry<String, Boolean> matchedCPE = getMatchingSoftware(vulnSoftware, cpe.getVendor(), cpe.getProduct(), detectedVersion);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 355</td> <td class="nbHitsCovered"><a title="Line 355: Conditional coverage 100% (2/2)."> 12</a></td> <td class="src"><pre class="src"> <a title="Line 355: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (matchedCPE != <span class="keyword">null</span>) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 351</td> <td class="nbHitsCovered"><a title="Line 351: Conditional coverage 100% (2/2)."> 341</a></td> <td class="src"><pre class="src"> <a title="Line 351: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rs.next()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 352</td> <td class="nbHitsCovered"> 337</td> <td class="src"><pre class="src"> <span class="keyword">final</span> String cveId = rs.getString(1);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 353</td> <td class="nbHitsCovered"><a title="Line 353: Conditional coverage 100% (2/2)."> 337</a></td> <td class="src"><pre class="src"> <a title="Line 353: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (!currentCVE.equals(cveId)) { <span class="comment">//check for match and add</span></a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 354</td> <td class="nbHitsCovered"> 13</td> <td class="src"><pre class="src"> <span class="keyword">final</span> Entry<String, Boolean> matchedCPE = getMatchingSoftware(vulnSoftware, cpe.getVendor(), cpe.getProduct(), detectedVersion);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 355</td> <td class="nbHitsCovered"><a title="Line 355: Conditional coverage 100% (2/2)."> 13</a></td> <td class="src"><pre class="src"> <a title="Line 355: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (matchedCPE != <span class="keyword">null</span>) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 356</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">final</span> Vulnerability v = getVulnerability(currentCVE);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 357</td> <td class="nbHitsUncovered"><a title="Line 357: Conditional coverage 50% (1/2)."> 6</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 357: Conditional coverage 50% (1/2)."> v.setMatchedCPE(matchedCPE.getKey(), matchedCPE.getValue() ? <span class="string">"Y"</span> : <span class="keyword">null</span>);</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 358</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> vulnerabilities.add(v);</pre></td></tr>
|
||||
<tr> <td class="numLine"> 359</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 360</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src"> vulnSoftware.clear();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 361</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src"> currentCVE = cveId;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 360</td> <td class="nbHitsCovered"> 13</td> <td class="src"><pre class="src"> vulnSoftware.clear();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 361</td> <td class="nbHitsCovered"> 13</td> <td class="src"><pre class="src"> currentCVE = cveId;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 362</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 363</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 364</td> <td class="nbHitsCovered"> 305</td> <td class="src"><pre class="src"> <span class="keyword">final</span> String cpeId = rs.getString(2);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 365</td> <td class="nbHitsCovered"> 305</td> <td class="src"><pre class="src"> <span class="keyword">final</span> String previous = rs.getString(3);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 366</td> <td class="nbHitsUncovered"><a title="Line 366: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> 305</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 366: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> <span class="keyword">final</span> Boolean p = previous != <span class="keyword">null</span> && !previous.isEmpty();</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 367</td> <td class="nbHitsCovered"> 305</td> <td class="src"><pre class="src"> vulnSoftware.put(cpeId, p);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 368</td> <td class="nbHitsCovered"> 305</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 364</td> <td class="nbHitsCovered"> 337</td> <td class="src"><pre class="src"> <span class="keyword">final</span> String cpeId = rs.getString(2);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 365</td> <td class="nbHitsCovered"> 337</td> <td class="src"><pre class="src"> <span class="keyword">final</span> String previous = rs.getString(3);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 366</td> <td class="nbHitsUncovered"><a title="Line 366: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> 337</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 366: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> <span class="keyword">final</span> Boolean p = previous != <span class="keyword">null</span> && !previous.isEmpty();</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 367</td> <td class="nbHitsCovered"> 337</td> <td class="src"><pre class="src"> vulnSoftware.put(cpeId, p);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 368</td> <td class="nbHitsCovered"> 337</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 369</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">//remember to process the last set of CVE/CPE entries</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 370</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> <span class="keyword">final</span> Entry<String, Boolean> matchedCPE = getMatchingSoftware(vulnSoftware, cpe.getVendor(), cpe.getProduct(), detectedVersion);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 371</td> <td class="nbHitsCovered"><a title="Line 371: Conditional coverage 100% (2/2)."> 4</a></td> <td class="src"><pre class="src"> <a title="Line 371: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (matchedCPE != <span class="keyword">null</span>) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 372</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">final</span> Vulnerability v = getVulnerability(currentCVE);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 373</td> <td class="nbHitsUncovered"><a title="Line 373: Conditional coverage 50% (1/2)."> 2</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 373: Conditional coverage 50% (1/2)."> v.setMatchedCPE(matchedCPE.getKey(), matchedCPE.getValue() ? <span class="string">"Y"</span> : <span class="keyword">null</span>);</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 374</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> vulnerabilities.add(v);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 372</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> <span class="keyword">final</span> Vulnerability v = getVulnerability(currentCVE);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 373</td> <td class="nbHitsCovered"><a title="Line 373: Conditional coverage 100% (2/2)."> 3</a></td> <td class="src"><pre class="src"> <a title="Line 373: Conditional coverage 100% (2/2)."> v.setMatchedCPE(matchedCPE.getKey(), matchedCPE.getValue() ? <span class="string">"Y"</span> : <span class="keyword">null</span>);</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 374</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> vulnerabilities.add(v);</pre></td></tr>
|
||||
<tr> <td class="numLine"> 375</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 376</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr>
|
||||
@@ -646,79 +646,79 @@
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 392</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">synchronized</span> Vulnerability getVulnerability(String cve) <span class="keyword">throws</span> DatabaseException {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 393</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> PreparedStatement psV = <span class="keyword">null</span>;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 394</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> PreparedStatement psR = <span class="keyword">null</span>;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 395</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> PreparedStatement psS = <span class="keyword">null</span>;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 396</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> ResultSet rsV = <span class="keyword">null</span>;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 397</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> ResultSet rsR = <span class="keyword">null</span>;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 398</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> ResultSet rsS = <span class="keyword">null</span>;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 399</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> Vulnerability vuln = <span class="keyword">null</span>;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 393</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> PreparedStatement psV = <span class="keyword">null</span>;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 394</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> PreparedStatement psR = <span class="keyword">null</span>;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 395</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> PreparedStatement psS = <span class="keyword">null</span>;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 396</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> ResultSet rsV = <span class="keyword">null</span>;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 397</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> ResultSet rsR = <span class="keyword">null</span>;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 398</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> ResultSet rsS = <span class="keyword">null</span>;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 399</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> Vulnerability vuln = <span class="keyword">null</span>;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 400</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 401</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 402</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> psV = getConnection().prepareStatement(statementBundle.getString(<span class="string">"SELECT_VULNERABILITY"</span>));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 403</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> psV.setString(1, cve);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 404</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> rsV = psV.executeQuery();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 405</td> <td class="nbHitsUncovered"><a title="Line 405: Conditional coverage 50% (1/2)."> 8</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 405: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (rsV.next()) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 406</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> vuln = <span class="keyword">new</span> Vulnerability();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 407</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> vuln.setName(cve);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 408</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> vuln.setDescription(rsV.getString(2));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 409</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> String cwe = rsV.getString(3);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 410</td> <td class="nbHitsUncovered"><a title="Line 410: Conditional coverage 50% (1/2)."> 8</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 410: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (cwe != <span class="keyword">null</span>) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 411</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> <span class="keyword">final</span> String name = CweDB.getCweName(cwe);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 412</td> <td class="nbHitsCovered"><a title="Line 412: Conditional coverage 100% (2/2)."> 8</a></td> <td class="src"><pre class="src"> <a title="Line 412: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (name != <span class="keyword">null</span>) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 413</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src"> cwe += <span class="string">' '</span> + name;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 402</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> psV = getConnection().prepareStatement(statementBundle.getString(<span class="string">"SELECT_VULNERABILITY"</span>));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 403</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> psV.setString(1, cve);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 404</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> rsV = psV.executeQuery();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 405</td> <td class="nbHitsUncovered"><a title="Line 405: Conditional coverage 50% (1/2)."> 9</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 405: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (rsV.next()) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 406</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> vuln = <span class="keyword">new</span> Vulnerability();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 407</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> vuln.setName(cve);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 408</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> vuln.setDescription(rsV.getString(2));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 409</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> String cwe = rsV.getString(3);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 410</td> <td class="nbHitsUncovered"><a title="Line 410: Conditional coverage 50% (1/2)."> 9</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 410: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (cwe != <span class="keyword">null</span>) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 411</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> <span class="keyword">final</span> String name = CweDB.getCweName(cwe);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 412</td> <td class="nbHitsCovered"><a title="Line 412: Conditional coverage 100% (2/2)."> 9</a></td> <td class="src"><pre class="src"> <a title="Line 412: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (name != <span class="keyword">null</span>) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 413</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> cwe += <span class="string">' '</span> + name;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 414</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 415</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 416</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> <span class="keyword">final</span> <span class="keyword">int</span> cveId = rsV.getInt(1);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 417</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> vuln.setCwe(cwe);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 418</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> vuln.setCvssScore(rsV.getFloat(4));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 419</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> vuln.setCvssAccessVector(rsV.getString(5));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 420</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> vuln.setCvssAccessComplexity(rsV.getString(6));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 421</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> vuln.setCvssAuthentication(rsV.getString(7));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 422</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> vuln.setCvssConfidentialityImpact(rsV.getString(8));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 423</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> vuln.setCvssIntegrityImpact(rsV.getString(9));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 424</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> vuln.setCvssAvailabilityImpact(rsV.getString(10));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 416</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> <span class="keyword">final</span> <span class="keyword">int</span> cveId = rsV.getInt(1);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 417</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> vuln.setCwe(cwe);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 418</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> vuln.setCvssScore(rsV.getFloat(4));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 419</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> vuln.setCvssAccessVector(rsV.getString(5));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 420</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> vuln.setCvssAccessComplexity(rsV.getString(6));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 421</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> vuln.setCvssAuthentication(rsV.getString(7));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 422</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> vuln.setCvssConfidentialityImpact(rsV.getString(8));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 423</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> vuln.setCvssIntegrityImpact(rsV.getString(9));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 424</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> vuln.setCvssAvailabilityImpact(rsV.getString(10));</pre></td></tr>
|
||||
<tr> <td class="numLine"> 425</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 426</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> psR = getConnection().prepareStatement(statementBundle.getString(<span class="string">"SELECT_REFERENCES"</span>));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 427</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> psR.setInt(1, cveId);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 428</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> rsR = psR.executeQuery();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 429</td> <td class="nbHitsCovered"><a title="Line 429: Conditional coverage 100% (2/2)."> 76</a></td> <td class="src"><pre class="src"> <a title="Line 429: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rsR.next()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 430</td> <td class="nbHitsCovered"> 68</td> <td class="src"><pre class="src"> vuln.addReference(rsR.getString(1), rsR.getString(2), rsR.getString(3));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 426</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> psR = getConnection().prepareStatement(statementBundle.getString(<span class="string">"SELECT_REFERENCES"</span>));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 427</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> psR.setInt(1, cveId);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 428</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> rsR = psR.executeQuery();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 429</td> <td class="nbHitsCovered"><a title="Line 429: Conditional coverage 100% (2/2)."> 80</a></td> <td class="src"><pre class="src"> <a title="Line 429: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rsR.next()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 430</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src"> vuln.addReference(rsR.getString(1), rsR.getString(2), rsR.getString(3));</pre></td></tr>
|
||||
<tr> <td class="numLine"> 431</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 432</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> psS = getConnection().prepareStatement(statementBundle.getString(<span class="string">"SELECT_SOFTWARE"</span>));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 433</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> psS.setInt(1, cveId);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 434</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> rsS = psS.executeQuery();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 435</td> <td class="nbHitsCovered"><a title="Line 435: Conditional coverage 100% (2/2)."> 244</a></td> <td class="src"><pre class="src"> <a title="Line 435: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rsS.next()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 436</td> <td class="nbHitsCovered"> 236</td> <td class="src"><pre class="src"> <span class="keyword">final</span> String cpe = rsS.getString(1);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 437</td> <td class="nbHitsCovered"> 236</td> <td class="src"><pre class="src"> <span class="keyword">final</span> String prevVersion = rsS.getString(2);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 438</td> <td class="nbHitsCovered"><a title="Line 438: Conditional coverage 100% (2/2)."> 236</a></td> <td class="src"><pre class="src"> <a title="Line 438: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (prevVersion == <span class="keyword">null</span>) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 439</td> <td class="nbHitsCovered"> 228</td> <td class="src"><pre class="src"> vuln.addVulnerableSoftware(cpe);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 432</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> psS = getConnection().prepareStatement(statementBundle.getString(<span class="string">"SELECT_SOFTWARE"</span>));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 433</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> psS.setInt(1, cveId);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 434</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> rsS = psS.executeQuery();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 435</td> <td class="nbHitsCovered"><a title="Line 435: Conditional coverage 100% (2/2)."> 277</a></td> <td class="src"><pre class="src"> <a title="Line 435: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rsS.next()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 436</td> <td class="nbHitsCovered"> 268</td> <td class="src"><pre class="src"> <span class="keyword">final</span> String cpe = rsS.getString(1);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 437</td> <td class="nbHitsCovered"> 268</td> <td class="src"><pre class="src"> <span class="keyword">final</span> String prevVersion = rsS.getString(2);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 438</td> <td class="nbHitsCovered"><a title="Line 438: Conditional coverage 100% (2/2)."> 268</a></td> <td class="src"><pre class="src"> <a title="Line 438: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (prevVersion == <span class="keyword">null</span>) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 439</td> <td class="nbHitsCovered"> 259</td> <td class="src"><pre class="src"> vuln.addVulnerableSoftware(cpe);</pre></td></tr>
|
||||
<tr> <td class="numLine"> 440</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 441</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> vuln.addVulnerableSoftware(cpe, prevVersion);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 441</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> vuln.addVulnerableSoftware(cpe, prevVersion);</pre></td></tr>
|
||||
<tr> <td class="numLine"> 442</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 443</td> <td class="nbHitsCovered"> 236</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 443</td> <td class="nbHitsCovered"> 268</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 444</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 445</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 446</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> DatabaseException(<span class="string">"Error retrieving "</span> + cve, ex);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 447</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> } <span class="keyword">finally</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 448</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> DBUtils.closeResultSet(rsV);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 449</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> DBUtils.closeResultSet(rsR);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 450</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> DBUtils.closeResultSet(rsS);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 451</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> DBUtils.closeStatement(psV);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 452</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> DBUtils.closeStatement(psR);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 453</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> DBUtils.closeStatement(psS);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 454</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 455</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> <span class="keyword">return</span> vuln;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 448</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> DBUtils.closeResultSet(rsV);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 449</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> DBUtils.closeResultSet(rsR);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 450</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> DBUtils.closeResultSet(rsS);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 451</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> DBUtils.closeStatement(psV);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 452</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> DBUtils.closeStatement(psR);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 453</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> DBUtils.closeStatement(psS);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 454</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 455</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> <span class="keyword">return</span> vuln;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 456</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 457</td> <td class="nbHits"> </td>
|
||||
@@ -1065,48 +1065,48 @@
|
||||
<td class="src"><pre class="src"> DependencyVersion identifiedVersion) {</pre></td></tr>
|
||||
<tr> <td class="numLine"> 708</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 709</td> <td class="nbHitsUncovered"><a title="Line 709: Conditional coverage 25% (1/4) [each condition: 50%, 0%]."> 16</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 709: Conditional coverage 25% (1/4) [each condition: 50%, 0%]."> <span class="keyword">final</span> <span class="keyword">boolean</span> isVersionTwoADifferentProduct = <span class="string">"apache"</span>.equals(vendor) && <span class="string">"struts"</span>.equals(product);</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 709</td> <td class="nbHitsUncovered"><a title="Line 709: Conditional coverage 25% (1/4) [each condition: 50%, 0%]."> 17</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 709: Conditional coverage 25% (1/4) [each condition: 50%, 0%]."> <span class="keyword">final</span> <span class="keyword">boolean</span> isVersionTwoADifferentProduct = <span class="string">"apache"</span>.equals(vendor) && <span class="string">"struts"</span>.equals(product);</a></span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 710</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 711</td> <td class="nbHitsCovered"> 16</td> <td class="src"><pre class="src"> <span class="keyword">final</span> Set<String> majorVersionsAffectingAllPrevious = <span class="keyword">new</span> HashSet<String>();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 712</td> <td class="nbHitsUncovered"><a title="Line 712: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> 16</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 712: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> <span class="keyword">final</span> <span class="keyword">boolean</span> matchesAnyPrevious = identifiedVersion == <span class="keyword">null</span> || <span class="string">"-"</span>.equals(identifiedVersion.toString());</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 713</td> <td class="nbHitsCovered"> 16</td> <td class="src"><pre class="src"> String majorVersionMatch = <span class="keyword">null</span>;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 714</td> <td class="nbHitsCovered"><a title="Line 714: Conditional coverage 100% (2/2)."> 16</a></td> <td class="src"><pre class="src"> <a title="Line 714: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Entry<String, Boolean> entry : vulnerableSoftware.entrySet()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 715</td> <td class="nbHitsCovered"> 305</td> <td class="src"><pre class="src"> <span class="keyword">final</span> DependencyVersion v = parseDependencyVersion(entry.getKey());</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 716</td> <td class="nbHitsUncovered"><a title="Line 716: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> 305</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 716: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> <span class="keyword">if</span> (v == <span class="keyword">null</span> || <span class="string">"-"</span>.equals(v.toString())) { <span class="comment">//all versions</span></a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 711</td> <td class="nbHitsCovered"> 17</td> <td class="src"><pre class="src"> <span class="keyword">final</span> Set<String> majorVersionsAffectingAllPrevious = <span class="keyword">new</span> HashSet<String>();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 712</td> <td class="nbHitsUncovered"><a title="Line 712: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> 17</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 712: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> <span class="keyword">final</span> <span class="keyword">boolean</span> matchesAnyPrevious = identifiedVersion == <span class="keyword">null</span> || <span class="string">"-"</span>.equals(identifiedVersion.toString());</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 713</td> <td class="nbHitsCovered"> 17</td> <td class="src"><pre class="src"> String majorVersionMatch = <span class="keyword">null</span>;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 714</td> <td class="nbHitsCovered"><a title="Line 714: Conditional coverage 100% (2/2)."> 17</a></td> <td class="src"><pre class="src"> <a title="Line 714: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Entry<String, Boolean> entry : vulnerableSoftware.entrySet()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 715</td> <td class="nbHitsCovered"> 337</td> <td class="src"><pre class="src"> <span class="keyword">final</span> DependencyVersion v = parseDependencyVersion(entry.getKey());</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 716</td> <td class="nbHitsUncovered"><a title="Line 716: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> 337</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 716: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> <span class="keyword">if</span> (v == <span class="keyword">null</span> || <span class="string">"-"</span>.equals(v.toString())) { <span class="comment">//all versions</span></a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 717</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> entry;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 718</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 719</td> <td class="nbHitsCovered"><a title="Line 719: Conditional coverage 100% (2/2)."> 305</a></td> <td class="src"><pre class="src"> <a title="Line 719: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (entry.getValue()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 720</td> <td class="nbHitsUncovered"><a title="Line 720: Conditional coverage 50% (1/2)."> 8</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 720: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (matchesAnyPrevious) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 719</td> <td class="nbHitsCovered"><a title="Line 719: Conditional coverage 100% (2/2)."> 337</a></td> <td class="src"><pre class="src"> <a title="Line 719: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (entry.getValue()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 720</td> <td class="nbHitsUncovered"><a title="Line 720: Conditional coverage 50% (1/2)."> 9</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 720: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (matchesAnyPrevious) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 721</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> entry;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 722</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 723</td> <td class="nbHitsUncovered"><a title="Line 723: Conditional coverage 75% (3/4) [each condition: 50%, 100%]."> 8</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 723: Conditional coverage 75% (3/4) [each condition: 50%, 100%]."> <span class="keyword">if</span> (identifiedVersion != <span class="keyword">null</span> && identifiedVersion.getVersionParts().get(0).equals(v.getVersionParts().get(0))) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 724</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> majorVersionMatch = v.getVersionParts().get(0);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 723</td> <td class="nbHitsUncovered"><a title="Line 723: Conditional coverage 75% (3/4) [each condition: 50%, 100%]."> 9</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 723: Conditional coverage 75% (3/4) [each condition: 50%, 100%]."> <span class="keyword">if</span> (identifiedVersion != <span class="keyword">null</span> && identifiedVersion.getVersionParts().get(0).equals(v.getVersionParts().get(0))) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 724</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src"> majorVersionMatch = v.getVersionParts().get(0);</pre></td></tr>
|
||||
<tr> <td class="numLine"> 725</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 726</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> majorVersionsAffectingAllPrevious.add(v.getVersionParts().get(0));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 726</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> majorVersionsAffectingAllPrevious.add(v.getVersionParts().get(0));</pre></td></tr>
|
||||
<tr> <td class="numLine"> 727</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 728</td> <td class="nbHitsCovered"> 305</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 729</td> <td class="nbHitsUncovered"><a title="Line 729: Conditional coverage 50% (1/2)."> 16</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 729: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (matchesAnyPrevious) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 728</td> <td class="nbHitsCovered"> 337</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 729</td> <td class="nbHitsUncovered"><a title="Line 729: Conditional coverage 50% (1/2)."> 17</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 729: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (matchesAnyPrevious) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 730</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">null</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 731</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 732</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 733</td> <td class="nbHitsCovered"><a title="Line 733: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 16</a></td> <td class="src"><pre class="src"> <a title="Line 733: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">final</span> <span class="keyword">boolean</span> canSkipVersions = majorVersionMatch != <span class="keyword">null</span> && majorVersionsAffectingAllPrevious.size() > 1;</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 733</td> <td class="nbHitsCovered"><a title="Line 733: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 17</a></td> <td class="src"><pre class="src"> <a title="Line 733: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">final</span> <span class="keyword">boolean</span> canSkipVersions = majorVersionMatch != <span class="keyword">null</span> && majorVersionsAffectingAllPrevious.size() > 1;</a></pre></td></tr>
|
||||
<tr> <td class="numLine"> 734</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">//yes, we are iterating over this twice. The first time we are skipping versions those that affect all versions</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 735</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">//then later we process those that affect all versions. This could be done with sorting...</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 736</td> <td class="nbHitsCovered"><a title="Line 736: Conditional coverage 100% (2/2)."> 16</a></td> <td class="src"><pre class="src"> <a title="Line 736: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Entry<String, Boolean> entry : vulnerableSoftware.entrySet()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 737</td> <td class="nbHitsCovered"><a title="Line 737: Conditional coverage 100% (2/2)."> 263</a></td> <td class="src"><pre class="src"> <a title="Line 737: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (!entry.getValue()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 738</td> <td class="nbHitsCovered"> 255</td> <td class="src"><pre class="src"> <span class="keyword">final</span> DependencyVersion v = parseDependencyVersion(entry.getKey());</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 736</td> <td class="nbHitsCovered"><a title="Line 736: Conditional coverage 100% (2/2)."> 17</a></td> <td class="src"><pre class="src"> <a title="Line 736: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Entry<String, Boolean> entry : vulnerableSoftware.entrySet()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 737</td> <td class="nbHitsCovered"><a title="Line 737: Conditional coverage 100% (2/2)."> 295</a></td> <td class="src"><pre class="src"> <a title="Line 737: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (!entry.getValue()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 738</td> <td class="nbHitsCovered"> 286</td> <td class="src"><pre class="src"> <span class="keyword">final</span> DependencyVersion v = parseDependencyVersion(entry.getKey());</pre></td></tr>
|
||||
<tr> <td class="numLine"> 739</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">//this can't dereference a null 'majorVersionMatch' as canSkipVersions accounts for this.</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 740</td> <td class="nbHitsCovered"><a title="Line 740: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 255</a></td> <td class="src"><pre class="src"> <a title="Line 740: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (canSkipVersions && !majorVersionMatch.equals(v.getVersionParts().get(0))) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 740</td> <td class="nbHitsCovered"><a title="Line 740: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 286</a></td> <td class="src"><pre class="src"> <a title="Line 740: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (canSkipVersions && !majorVersionMatch.equals(v.getVersionParts().get(0))) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 741</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> <span class="keyword">continue</span>;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 742</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
@@ -1114,19 +1114,19 @@
|
||||
<td class="src"><pre class="src"> <span class="comment">//this can't dereference a null 'identifiedVersion' because if it was null we would have exited</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 744</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">//in the above loop or just after loop (if matchesAnyPrevious return null).</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 745</td> <td class="nbHitsCovered"><a title="Line 745: Conditional coverage 100% (2/2)."> 247</a></td> <td class="src"><pre class="src"> <a title="Line 745: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (identifiedVersion.equals(v)) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 745</td> <td class="nbHitsCovered"><a title="Line 745: Conditional coverage 100% (2/2)."> 278</a></td> <td class="src"><pre class="src"> <a title="Line 745: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (identifiedVersion.equals(v)) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 746</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> <span class="keyword">return</span> entry;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 747</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 748</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 749</td> <td class="nbHitsCovered"> 247</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 750</td> <td class="nbHitsCovered"><a title="Line 750: Conditional coverage 100% (2/2)."> 8</a></td> <td class="src"><pre class="src"> <a title="Line 750: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Entry<String, Boolean> entry : vulnerableSoftware.entrySet()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 751</td> <td class="nbHitsUncovered"><a title="Line 751: Conditional coverage 50% (1/2)."> 82</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 751: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (entry.getValue()) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 752</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> DependencyVersion v = parseDependencyVersion(entry.getKey());</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 749</td> <td class="nbHitsCovered"> 279</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 750</td> <td class="nbHitsCovered"><a title="Line 750: Conditional coverage 100% (2/2)."> 9</a></td> <td class="src"><pre class="src"> <a title="Line 750: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Entry<String, Boolean> entry : vulnerableSoftware.entrySet()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 751</td> <td class="nbHitsCovered"><a title="Line 751: Conditional coverage 100% (2/2)."> 105</a></td> <td class="src"><pre class="src"> <a title="Line 751: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (entry.getValue()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 752</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">final</span> DependencyVersion v = parseDependencyVersion(entry.getKey());</pre></td></tr>
|
||||
<tr> <td class="numLine"> 753</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">//this can't dereference a null 'majorVersionMatch' as canSkipVersions accounts for this.</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 754</td> <td class="nbHitsUncovered"><a title="Line 754: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 754: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> (canSkipVersions && !majorVersionMatch.equals(v.getVersionParts().get(0))) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 754</td> <td class="nbHitsUncovered"><a title="Line 754: Conditional coverage 25% (1/4) [each condition: 50%, 0%]."> 1</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 754: Conditional coverage 25% (1/4) [each condition: 50%, 0%]."> <span class="keyword">if</span> (canSkipVersions && !majorVersionMatch.equals(v.getVersionParts().get(0))) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 755</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">continue</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 756</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
@@ -1134,16 +1134,16 @@
|
||||
<td class="src"><pre class="src"> <span class="comment">//this can't dereference a null 'identifiedVersion' because if it was null we would have exited</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 758</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">//in the above loop or just after loop (if matchesAnyPrevious return null).</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 759</td> <td class="nbHitsUncovered"><a title="Line 759: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 759: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> (entry.getValue() && identifiedVersion.compareTo(v) <= 0) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 760</td> <td class="nbHitsUncovered"><a title="Line 760: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 760: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> (!(isVersionTwoADifferentProduct && !identifiedVersion.getVersionParts().get(0).equals(v.getVersionParts().get(0)))) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 761</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> entry;</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 759</td> <td class="nbHitsUncovered"><a title="Line 759: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> 1</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 759: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> <span class="keyword">if</span> (entry.getValue() && identifiedVersion.compareTo(v) <= 0) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 760</td> <td class="nbHitsUncovered"><a title="Line 760: Conditional coverage 25% (1/4) [each condition: 50%, 0%]."> 1</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 760: Conditional coverage 25% (1/4) [each condition: 50%, 0%]."> <span class="keyword">if</span> (!(isVersionTwoADifferentProduct && !identifiedVersion.getVersionParts().get(0).equals(v.getVersionParts().get(0)))) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 761</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">return</span> entry;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 762</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 763</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 764</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 765</td> <td class="nbHitsCovered"> 82</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 765</td> <td class="nbHitsCovered"> 104</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 766</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">null</span>;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 767</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
@@ -1165,16 +1165,16 @@
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 776</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">private</span> DependencyVersion parseDependencyVersion(String cpeStr) {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 777</td> <td class="nbHitsCovered"> 560</td> <td class="src"><pre class="src"> <span class="keyword">final</span> VulnerableSoftware cpe = <span class="keyword">new</span> VulnerableSoftware();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 777</td> <td class="nbHitsCovered"> 624</td> <td class="src"><pre class="src"> <span class="keyword">final</span> VulnerableSoftware cpe = <span class="keyword">new</span> VulnerableSoftware();</pre></td></tr>
|
||||
<tr> <td class="numLine"> 778</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 779</td> <td class="nbHitsCovered"> 560</td> <td class="src"><pre class="src"> cpe.parseName(cpeStr);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 779</td> <td class="nbHitsCovered"> 624</td> <td class="src"><pre class="src"> cpe.parseName(cpeStr);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 780</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (UnsupportedEncodingException ex) {</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 781</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">//never going to happen.</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 782</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LOGGER.trace(<span class="string">""</span>, ex);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 783</td> <td class="nbHitsCovered"> 560</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 784</td> <td class="nbHitsCovered"> 560</td> <td class="src"><pre class="src"> <span class="keyword">return</span> parseDependencyVersion(cpe);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 783</td> <td class="nbHitsCovered"> 624</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 784</td> <td class="nbHitsCovered"> 624</td> <td class="src"><pre class="src"> <span class="keyword">return</span> parseDependencyVersion(cpe);</pre></td></tr>
|
||||
<tr> <td class="numLine"> 785</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 786</td> <td class="nbHits"> </td>
|
||||
@@ -1197,22 +1197,22 @@
|
||||
<td class="src"><pre class="src"> <span class="keyword">private</span> DependencyVersion parseDependencyVersion(VulnerableSoftware cpe) {</pre></td></tr>
|
||||
<tr> <td class="numLine"> 795</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">final</span> DependencyVersion cpeVersion;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 796</td> <td class="nbHitsUncovered"><a title="Line 796: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> 564</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 796: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> <span class="keyword">if</span> (cpe.getVersion() != <span class="keyword">null</span> && !cpe.getVersion().isEmpty()) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 796</td> <td class="nbHitsUncovered"><a title="Line 796: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> 628</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 796: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> <span class="keyword">if</span> (cpe.getVersion() != <span class="keyword">null</span> && !cpe.getVersion().isEmpty()) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 797</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">final</span> String versionText;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 798</td> <td class="nbHitsUncovered"><a title="Line 798: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> 564</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 798: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> <span class="keyword">if</span> (cpe.getUpdate() != <span class="keyword">null</span> && !cpe.getUpdate().isEmpty()) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 798</td> <td class="nbHitsUncovered"><a title="Line 798: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> 628</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 798: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> <span class="keyword">if</span> (cpe.getUpdate() != <span class="keyword">null</span> && !cpe.getUpdate().isEmpty()) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 799</td> <td class="nbHitsCovered"> 113</td> <td class="src"><pre class="src"> versionText = String.format(<span class="string">"%s.%s"</span>, cpe.getVersion(), cpe.getUpdate());</pre></td></tr>
|
||||
<tr> <td class="numLine"> 800</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 801</td> <td class="nbHitsCovered"> 451</td> <td class="src"><pre class="src"> versionText = cpe.getVersion();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 801</td> <td class="nbHitsCovered"> 515</td> <td class="src"><pre class="src"> versionText = cpe.getVersion();</pre></td></tr>
|
||||
<tr> <td class="numLine"> 802</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 803</td> <td class="nbHitsCovered"> 564</td> <td class="src"><pre class="src"> cpeVersion = DependencyVersionUtil.parseVersion(versionText);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 804</td> <td class="nbHitsCovered"> 564</td> <td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 803</td> <td class="nbHitsCovered"> 628</td> <td class="src"><pre class="src"> cpeVersion = DependencyVersionUtil.parseVersion(versionText);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 804</td> <td class="nbHitsCovered"> 628</td> <td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 805</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> cpeVersion = <span class="keyword">new</span> DependencyVersion(<span class="string">"-"</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 806</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 807</td> <td class="nbHitsCovered"> 564</td> <td class="src"><pre class="src"> <span class="keyword">return</span> cpeVersion;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 807</td> <td class="nbHitsCovered"> 628</td> <td class="src"><pre class="src"> <span class="keyword">return</span> cpeVersion;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 808</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 809</td> <td class="nbHits"> </td>
|
||||
@@ -1284,6 +1284,6 @@
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
</table>
|
||||
|
||||
<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 2.1.1 on 11/5/16 7:41 AM.</div>
|
||||
<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 2.1.1 on 1/22/17 4:19 PM.</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user