mirror of
https://github.com/ysoftdevs/DependencyCheck.git
synced 2026-04-30 04:04:30 +02:00
version 1.3.3 of the site documentation
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">47%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:47px"><span class="text">198/419</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">54%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:54px"><span class="text">70/128</span></div></div></td></tr></table></td><td class="value"><span class="hidden">5.2727272727272725;</span>5.273</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">200/419</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">73/128</span></div></div></td></tr></table></td><td class="value"><span class="hidden">5.2727272727272725;</span>5.273</td></tr>
|
||||
|
||||
</table>
|
||||
<div class="separator"> </div>
|
||||
@@ -202,7 +202,7 @@
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 101</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"> 102</td> <td class="nbHitsCovered"> 35</td> <td class="src"><pre class="src"> <span class="keyword">return</span> conn;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 102</td> <td class="nbHitsCovered"> 37</td> <td class="src"><pre class="src"> <span class="keyword">return</span> conn;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 103</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 104</td> <td class="nbHits"> </td>
|
||||
@@ -234,7 +234,7 @@
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 119</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> close() {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 120</td> <td class="nbHitsCovered"><a title="Line 120: Conditional coverage 100% (2/2)."> 11</a></td> <td class="src"><pre class="src"> <a title="Line 120: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (conn != <span class="keyword">null</span>) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 120</td> <td class="nbHitsCovered"><a title="Line 120: Conditional coverage 100% (2/2)."> 8</a></td> <td class="src"><pre class="src"> <a title="Line 120: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (conn != <span class="keyword">null</span>) {</a></pre></td></tr>
|
||||
<tr> <td class="numLine"> 121</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 122</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> conn.close();</pre></td></tr>
|
||||
@@ -248,7 +248,7 @@
|
||||
<tr> <td class="numLineCover"> 130</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> conn = <span class="keyword">null</span>;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 131</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 132</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 132</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 133</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 134</td> <td class="nbHits"> </td>
|
||||
@@ -307,10 +307,10 @@
|
||||
<td class="src"><pre class="src"> @SuppressWarnings(<span class="string">"FinalizeDeclaration"</span>)</pre></td></tr>
|
||||
<tr> <td class="numLine"> 162</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"> 163</td> <td class="nbHitsCovered"> 5</td> <td class="src"><pre class="src"> LOGGER.debug(<span class="string">"Entering finalize"</span>);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 164</td> <td class="nbHitsCovered"> 5</td> <td class="src"><pre class="src"> close();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 165</td> <td class="nbHitsCovered"> 5</td> <td class="src"><pre class="src"> <span class="keyword">super</span>.finalize();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 166</td> <td class="nbHitsCovered"> 5</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 163</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> LOGGER.debug(<span class="string">"Entering finalize"</span>);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 164</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> close();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 165</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">super</span>.finalize();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 166</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 167</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 168</td> <td class="nbHits"> </td>
|
||||
@@ -356,31 +356,31 @@
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 189</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> Set<VulnerableSoftware> getCPEs(String vendor, String product) {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 190</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">final</span> Set<VulnerableSoftware> cpe = <span class="keyword">new</span> HashSet<VulnerableSoftware>();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 191</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> ResultSet rs = <span class="keyword">null</span>;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 192</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> PreparedStatement ps = <span class="keyword">null</span>;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 190</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> <span class="keyword">final</span> Set<VulnerableSoftware> cpe = <span class="keyword">new</span> HashSet<VulnerableSoftware>();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 191</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> ResultSet rs = <span class="keyword">null</span>;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 192</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> PreparedStatement ps = <span class="keyword">null</span>;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 193</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 194</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> ps = getConnection().prepareStatement(statementBundle.getString(<span class="string">"SELECT_CPE_ENTRIES"</span>));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 195</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> ps.setString(1, vendor);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 196</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> ps.setString(2, product);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 197</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> rs = ps.executeQuery();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 194</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> ps = getConnection().prepareStatement(statementBundle.getString(<span class="string">"SELECT_CPE_ENTRIES"</span>));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 195</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> ps.setString(1, vendor);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 196</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> ps.setString(2, product);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 197</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> rs = ps.executeQuery();</pre></td></tr>
|
||||
<tr> <td class="numLine"> 198</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 199</td> <td class="nbHitsCovered"><a title="Line 199: Conditional coverage 100% (2/2)."> 80</a></td> <td class="src"><pre class="src"> <a title="Line 199: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rs.next()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 200</td> <td class="nbHitsCovered"> 78</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"> 201</td> <td class="nbHitsCovered"> 78</td> <td class="src"><pre class="src"> vs.setCpe(rs.getString(1));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 202</td> <td class="nbHitsCovered"> 78</td> <td class="src"><pre class="src"> cpe.add(vs);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 203</td> <td class="nbHitsCovered"> 78</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 199</td> <td class="nbHitsCovered"><a title="Line 199: Conditional coverage 100% (2/2)."> 112</a></td> <td class="src"><pre class="src"> <a title="Line 199: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rs.next()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 200</td> <td class="nbHitsCovered"> 109</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"> 201</td> <td class="nbHitsCovered"> 109</td> <td class="src"><pre class="src"> vs.setCpe(rs.getString(1));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 202</td> <td class="nbHitsCovered"> 109</td> <td class="src"><pre class="src"> cpe.add(vs);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 203</td> <td class="nbHitsCovered"> 109</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 204</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"> 205</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"> 206</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>
|
||||
<tr> <td class="numLine"> 207</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> } <span class="keyword">finally</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 208</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> DBUtils.closeResultSet(rs);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 209</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> DBUtils.closeStatement(ps);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 210</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 211</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">return</span> cpe;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 208</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> DBUtils.closeResultSet(rs);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 209</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> DBUtils.closeStatement(ps);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 210</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 211</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> <span class="keyword">return</span> cpe;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 212</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 213</td> <td class="nbHits"> </td>
|
||||
@@ -406,8 +406,8 @@
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 225</td> <td class="nbHitsCovered"> 1</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"> 226</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> rs = ps.executeQuery();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 227</td> <td class="nbHitsCovered"><a title="Line 227: Conditional coverage 100% (2/2)."> 22137</a></td> <td class="src"><pre class="src"> <a title="Line 227: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rs.next()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 228</td> <td class="nbHitsCovered"> 22136</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"> 227</td> <td class="nbHitsCovered"><a title="Line 227: Conditional coverage 100% (2/2)."> 25471</a></td> <td class="src"><pre class="src"> <a title="Line 227: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rs.next()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 228</td> <td class="nbHitsCovered"> 25470</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"> 229</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 230</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>
|
||||
@@ -442,8 +442,8 @@
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 250</td> <td class="nbHitsCovered"> 6</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"> 251</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> rs = ps.executeQuery();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 252</td> <td class="nbHitsCovered"><a title="Line 252: Conditional coverage 100% (2/2)."> 96</a></td> <td class="src"><pre class="src"> <a title="Line 252: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rs.next()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 253</td> <td class="nbHitsCovered"> 90</td> <td class="src"><pre class="src"> prop.setProperty(rs.getString(1), rs.getString(2));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 252</td> <td class="nbHitsCovered"><a title="Line 252: Conditional coverage 100% (2/2)."> 120</a></td> <td class="src"><pre class="src"> <a title="Line 252: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rs.next()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 253</td> <td class="nbHitsCovered"> 114</td> <td class="src"><pre class="src"> prop.setProperty(rs.getString(1), rs.getString(2));</pre></td></tr>
|
||||
<tr> <td class="numLine"> 254</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 255</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>
|
||||
@@ -533,54 +533,54 @@
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 314</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> List<Vulnerability> getVulnerabilities(String cpeStr) <span class="keyword">throws</span> DatabaseException {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 315</td> <td class="nbHitsCovered"> 2</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"> 315</td> <td class="nbHitsCovered"> 3</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"> 316</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 317</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> cpe.parseName(cpeStr);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 317</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> cpe.parseName(cpeStr);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 318</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="numLineCover"> 319</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"> 320</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 321</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">final</span> DependencyVersion detectedVersion = parseDependencyVersion(cpe);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 322</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">final</span> List<Vulnerability> vulnerabilities = <span class="keyword">new</span> ArrayList<Vulnerability>();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 320</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 321</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> <span class="keyword">final</span> DependencyVersion detectedVersion = parseDependencyVersion(cpe);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 322</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> <span class="keyword">final</span> List<Vulnerability> vulnerabilities = <span class="keyword">new</span> ArrayList<Vulnerability>();</pre></td></tr>
|
||||
<tr> <td class="numLine"> 323</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 324</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> PreparedStatement ps = <span class="keyword">null</span>;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 325</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> ResultSet rs = <span class="keyword">null</span>;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 324</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> PreparedStatement ps = <span class="keyword">null</span>;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 325</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> ResultSet rs = <span class="keyword">null</span>;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 326</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 327</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> ps = getConnection().prepareStatement(statementBundle.getString(<span class="string">"SELECT_CVE_FROM_SOFTWARE"</span>));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 328</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> ps.setString(1, cpe.getVendor());</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 329</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> ps.setString(2, cpe.getProduct());</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 330</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> rs = ps.executeQuery();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 331</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> String currentCVE = <span class="string">""</span>;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 327</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> ps = getConnection().prepareStatement(statementBundle.getString(<span class="string">"SELECT_CVE_FROM_SOFTWARE"</span>));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 328</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> ps.setString(1, cpe.getVendor());</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 329</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> ps.setString(2, cpe.getProduct());</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 330</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> rs = ps.executeQuery();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 331</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> String currentCVE = <span class="string">""</span>;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 332</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 333</td> <td class="nbHitsCovered"> 2</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"> 334</td> <td class="nbHitsCovered"><a title="Line 334: Conditional coverage 100% (2/2)."> 225</a></td> <td class="src"><pre class="src"> <a title="Line 334: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rs.next()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 335</td> <td class="nbHitsCovered"> 223</td> <td class="src"><pre class="src"> <span class="keyword">final</span> String cveId = rs.getString(1);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 336</td> <td class="nbHitsCovered"><a title="Line 336: Conditional coverage 100% (2/2)."> 223</a></td> <td class="src"><pre class="src"> <a title="Line 336: 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"> 337</td> <td class="nbHitsCovered"> 8</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"> 338</td> <td class="nbHitsCovered"><a title="Line 338: Conditional coverage 100% (2/2)."> 8</a></td> <td class="src"><pre class="src"> <a title="Line 338: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (matchedCPE != <span class="keyword">null</span>) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 333</td> <td class="nbHitsCovered"> 3</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"> 334</td> <td class="nbHitsCovered"><a title="Line 334: Conditional coverage 100% (2/2)."> 282</a></td> <td class="src"><pre class="src"> <a title="Line 334: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rs.next()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 335</td> <td class="nbHitsCovered"> 279</td> <td class="src"><pre class="src"> <span class="keyword">final</span> String cveId = rs.getString(1);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 336</td> <td class="nbHitsCovered"><a title="Line 336: Conditional coverage 100% (2/2)."> 279</a></td> <td class="src"><pre class="src"> <a title="Line 336: 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"> 337</td> <td class="nbHitsCovered"> 10</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"> 338</td> <td class="nbHitsCovered"><a title="Line 338: Conditional coverage 100% (2/2)."> 10</a></td> <td class="src"><pre class="src"> <a title="Line 338: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (matchedCPE != <span class="keyword">null</span>) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 339</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"> 340</td> <td class="nbHitsUncovered"><a title="Line 340: Conditional coverage 50% (1/2)."> 6</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 340: 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"> 341</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> vulnerabilities.add(v);</pre></td></tr>
|
||||
<tr> <td class="numLine"> 342</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 343</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> vulnSoftware.clear();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 344</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> currentCVE = cveId;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 343</td> <td class="nbHitsCovered"> 10</td> <td class="src"><pre class="src"> vulnSoftware.clear();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 344</td> <td class="nbHitsCovered"> 10</td> <td class="src"><pre class="src"> currentCVE = cveId;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 345</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 346</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 347</td> <td class="nbHitsCovered"> 223</td> <td class="src"><pre class="src"> <span class="keyword">final</span> String cpeId = rs.getString(2);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 348</td> <td class="nbHitsCovered"> 223</td> <td class="src"><pre class="src"> <span class="keyword">final</span> String previous = rs.getString(3);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 349</td> <td class="nbHitsUncovered"><a title="Line 349: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> 223</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 349: 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"> 350</td> <td class="nbHitsCovered"> 223</td> <td class="src"><pre class="src"> vulnSoftware.put(cpeId, p);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 351</td> <td class="nbHitsCovered"> 223</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 347</td> <td class="nbHitsCovered"> 279</td> <td class="src"><pre class="src"> <span class="keyword">final</span> String cpeId = rs.getString(2);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 348</td> <td class="nbHitsCovered"> 279</td> <td class="src"><pre class="src"> <span class="keyword">final</span> String previous = rs.getString(3);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 349</td> <td class="nbHitsUncovered"><a title="Line 349: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> 279</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 349: 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"> 350</td> <td class="nbHitsCovered"> 279</td> <td class="src"><pre class="src"> vulnSoftware.put(cpeId, p);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 351</td> <td class="nbHitsCovered"> 279</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 352</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"> 353</td> <td class="nbHitsCovered"> 2</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"> 354</td> <td class="nbHitsUncovered"><a title="Line 354: Conditional coverage 50% (1/2)."> 2</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 354: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (matchedCPE != <span class="keyword">null</span>) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 353</td> <td class="nbHitsCovered"> 3</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"> 354</td> <td class="nbHitsCovered"><a title="Line 354: Conditional coverage 100% (2/2)."> 3</a></td> <td class="src"><pre class="src"> <a title="Line 354: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (matchedCPE != <span class="keyword">null</span>) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 355</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"> 356</td> <td class="nbHitsUncovered"><a title="Line 356: Conditional coverage 50% (1/2)."> 2</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 356: 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"> 357</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> vulnerabilities.add(v);</pre></td></tr>
|
||||
@@ -590,10 +590,10 @@
|
||||
<tr> <td class="numLineCover"> 360</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">"Exception retrieving vulnerability for "</span> + cpeStr, ex);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 361</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> } <span class="keyword">finally</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 362</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> DBUtils.closeResultSet(rs);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 363</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> DBUtils.closeStatement(ps);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 364</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 365</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">return</span> vulnerabilities;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 362</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> DBUtils.closeResultSet(rs);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 363</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> DBUtils.closeStatement(ps);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 364</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 365</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> <span class="keyword">return</span> vulnerabilities;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 366</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 367</td> <td class="nbHits"> </td>
|
||||
@@ -979,19 +979,19 @@
|
||||
<td class="src"><pre class="src"> DependencyVersion identifiedVersion) {</pre></td></tr>
|
||||
<tr> <td class="numLine"> 656</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 657</td> <td class="nbHitsUncovered"><a title="Line 657: Conditional coverage 25% (1/4) [each condition: 50%, 0%]."> 10</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 657: 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"> 657</td> <td class="nbHitsUncovered"><a title="Line 657: Conditional coverage 25% (1/4) [each condition: 50%, 0%]."> 13</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 657: 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"> 658</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 659</td> <td class="nbHitsCovered"> 10</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"> 660</td> <td class="nbHitsUncovered"><a title="Line 660: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> 10</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 660: 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"> 661</td> <td class="nbHitsCovered"> 10</td> <td class="src"><pre class="src"> String majorVersionMatch = <span class="keyword">null</span>;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 662</td> <td class="nbHitsCovered"><a title="Line 662: Conditional coverage 100% (2/2)."> 10</a></td> <td class="src"><pre class="src"> <a title="Line 662: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Entry<String, Boolean> entry : vulnerableSoftware.entrySet()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 663</td> <td class="nbHitsCovered"> 223</td> <td class="src"><pre class="src"> <span class="keyword">final</span> DependencyVersion v = parseDependencyVersion(entry.getKey());</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 664</td> <td class="nbHitsUncovered"><a title="Line 664: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> 223</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 664: 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"> 659</td> <td class="nbHitsCovered"> 13</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"> 660</td> <td class="nbHitsUncovered"><a title="Line 660: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> 13</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 660: 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"> 661</td> <td class="nbHitsCovered"> 13</td> <td class="src"><pre class="src"> String majorVersionMatch = <span class="keyword">null</span>;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 662</td> <td class="nbHitsCovered"><a title="Line 662: Conditional coverage 100% (2/2)."> 13</a></td> <td class="src"><pre class="src"> <a title="Line 662: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Entry<String, Boolean> entry : vulnerableSoftware.entrySet()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 663</td> <td class="nbHitsCovered"> 279</td> <td class="src"><pre class="src"> <span class="keyword">final</span> DependencyVersion v = parseDependencyVersion(entry.getKey());</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 664</td> <td class="nbHitsUncovered"><a title="Line 664: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> 279</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 664: 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"> 665</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"> 666</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 667</td> <td class="nbHitsCovered"><a title="Line 667: Conditional coverage 100% (2/2)."> 223</a></td> <td class="src"><pre class="src"> <a title="Line 667: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (entry.getValue()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 667</td> <td class="nbHitsCovered"><a title="Line 667: Conditional coverage 100% (2/2)."> 279</a></td> <td class="src"><pre class="src"> <a title="Line 667: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (entry.getValue()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 668</td> <td class="nbHitsUncovered"><a title="Line 668: Conditional coverage 50% (1/2)."> 8</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 668: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (matchesAnyPrevious) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 669</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"> 670</td> <td class="nbHits"> </td>
|
||||
@@ -1003,24 +1003,24 @@
|
||||
<tr> <td class="numLineCover"> 674</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> majorVersionsAffectingAllPrevious.add(v.getVersionParts().get(0));</pre></td></tr>
|
||||
<tr> <td class="numLine"> 675</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 676</td> <td class="nbHitsCovered"> 223</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 677</td> <td class="nbHitsUncovered"><a title="Line 677: Conditional coverage 50% (1/2)."> 10</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 677: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (matchesAnyPrevious) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 676</td> <td class="nbHitsCovered"> 279</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 677</td> <td class="nbHitsUncovered"><a title="Line 677: Conditional coverage 50% (1/2)."> 13</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 677: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (matchesAnyPrevious) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 678</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"> 679</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 680</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 681</td> <td class="nbHitsCovered"><a title="Line 681: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 10</a></td> <td class="src"><pre class="src"> <a title="Line 681: 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"> 681</td> <td class="nbHitsCovered"><a title="Line 681: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 13</a></td> <td class="src"><pre class="src"> <a title="Line 681: 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"> 682</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"> 683</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"> 684</td> <td class="nbHitsCovered"><a title="Line 684: Conditional coverage 100% (2/2)."> 10</a></td> <td class="src"><pre class="src"> <a title="Line 684: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Entry<String, Boolean> entry : vulnerableSoftware.entrySet()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 685</td> <td class="nbHitsCovered"><a title="Line 685: Conditional coverage 100% (2/2)."> 176</a></td> <td class="src"><pre class="src"> <a title="Line 685: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (!entry.getValue()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 686</td> <td class="nbHitsCovered"> 169</td> <td class="src"><pre class="src"> <span class="keyword">final</span> DependencyVersion v = parseDependencyVersion(entry.getKey());</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 684</td> <td class="nbHitsCovered"><a title="Line 684: Conditional coverage 100% (2/2)."> 13</a></td> <td class="src"><pre class="src"> <a title="Line 684: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Entry<String, Boolean> entry : vulnerableSoftware.entrySet()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 685</td> <td class="nbHitsCovered"><a title="Line 685: Conditional coverage 100% (2/2)."> 232</a></td> <td class="src"><pre class="src"> <a title="Line 685: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (!entry.getValue()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 686</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> <span class="keyword">final</span> DependencyVersion v = parseDependencyVersion(entry.getKey());</pre></td></tr>
|
||||
<tr> <td class="numLine"> 687</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"> 688</td> <td class="nbHitsCovered"><a title="Line 688: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 169</a></td> <td class="src"><pre class="src"> <a title="Line 688: 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"> 688</td> <td class="nbHitsCovered"><a title="Line 688: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 225</a></td> <td class="src"><pre class="src"> <a title="Line 688: 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"> 689</td> <td class="nbHitsCovered"> 10</td> <td class="src"><pre class="src"> <span class="keyword">continue</span>;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 690</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
@@ -1028,15 +1028,15 @@
|
||||
<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"> 692</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"> 693</td> <td class="nbHitsCovered"><a title="Line 693: Conditional coverage 100% (2/2)."> 159</a></td> <td class="src"><pre class="src"> <a title="Line 693: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (identifiedVersion.equals(v)) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 693</td> <td class="nbHitsCovered"><a title="Line 693: Conditional coverage 100% (2/2)."> 215</a></td> <td class="src"><pre class="src"> <a title="Line 693: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (identifiedVersion.equals(v)) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 694</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"> 695</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 696</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 697</td> <td class="nbHitsCovered"> 158</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 698</td> <td class="nbHitsUncovered"><a title="Line 698: Conditional coverage 50% (1/2)."> 2</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 698: Conditional coverage 50% (1/2)."> <span class="keyword">for</span> (Entry<String, Boolean> entry : vulnerableSoftware.entrySet()) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 699</td> <td class="nbHitsUncovered"><a title="Line 699: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 699: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (entry.getValue()) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 697</td> <td class="nbHitsCovered"> 214</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 698</td> <td class="nbHitsCovered"><a title="Line 698: Conditional coverage 100% (2/2)."> 5</a></td> <td class="src"><pre class="src"> <a title="Line 698: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Entry<String, Boolean> entry : vulnerableSoftware.entrySet()) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 699</td> <td class="nbHitsUncovered"><a title="Line 699: Conditional coverage 50% (1/2)."> 56</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 699: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (entry.getValue()) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 700</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="numLine"> 701</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>
|
||||
@@ -1057,8 +1057,8 @@
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 712</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 713</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 714</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">null</span>;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 713</td> <td class="nbHitsCovered"> 56</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 714</td> <td class="nbHitsCovered"> 5</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">null</span>;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 715</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 716</td> <td class="nbHits"> </td>
|
||||
@@ -1077,16 +1077,16 @@
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 723</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"> 724</td> <td class="nbHitsCovered"> 392</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"> 724</td> <td class="nbHitsCovered"> 504</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"> 725</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 726</td> <td class="nbHitsCovered"> 392</td> <td class="src"><pre class="src"> cpe.parseName(cpeStr);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 726</td> <td class="nbHitsCovered"> 504</td> <td class="src"><pre class="src"> cpe.parseName(cpeStr);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 727</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"> 728</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"> 729</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"> 730</td> <td class="nbHitsCovered"> 392</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 731</td> <td class="nbHitsCovered"> 392</td> <td class="src"><pre class="src"> <span class="keyword">return</span> parseDependencyVersion(cpe);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 730</td> <td class="nbHitsCovered"> 504</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 731</td> <td class="nbHitsCovered"> 504</td> <td class="src"><pre class="src"> <span class="keyword">return</span> parseDependencyVersion(cpe);</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="numLine"> 733</td> <td class="nbHits"> </td>
|
||||
@@ -1107,22 +1107,22 @@
|
||||
<td class="src"><pre class="src"> <span class="keyword">private</span> DependencyVersion parseDependencyVersion(VulnerableSoftware cpe) {</pre></td></tr>
|
||||
<tr> <td class="numLine"> 741</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"> 742</td> <td class="nbHitsUncovered"><a title="Line 742: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> 394</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 742: 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"> 742</td> <td class="nbHitsUncovered"><a title="Line 742: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> 507</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 742: 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"> 743</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"> 744</td> <td class="nbHitsUncovered"><a title="Line 744: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> 394</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 744: 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"> 744</td> <td class="nbHitsUncovered"><a title="Line 744: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> 507</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 744: 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"> 745</td> <td class="nbHitsCovered"> 130</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"> 746</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 747</td> <td class="nbHitsCovered"> 264</td> <td class="src"><pre class="src"> versionText = cpe.getVersion();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 747</td> <td class="nbHitsCovered"> 377</td> <td class="src"><pre class="src"> versionText = cpe.getVersion();</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"> 394</td> <td class="src"><pre class="src"> cpeVersion = DependencyVersionUtil.parseVersion(versionText);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 750</td> <td class="nbHitsCovered"> 394</td> <td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 749</td> <td class="nbHitsCovered"> 507</td> <td class="src"><pre class="src"> cpeVersion = DependencyVersionUtil.parseVersion(versionText);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 750</td> <td class="nbHitsCovered"> 507</td> <td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 751</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"> 752</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 753</td> <td class="nbHitsCovered"> 394</td> <td class="src"><pre class="src"> <span class="keyword">return</span> cpeVersion;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 753</td> <td class="nbHitsCovered"> 507</td> <td class="src"><pre class="src"> <span class="keyword">return</span> cpeVersion;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 754</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 755</td> <td class="nbHits"> </td>
|
||||
@@ -1192,6 +1192,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/29/15 7:26 AM.</div>
|
||||
<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 2.1.1 on 12/10/15 7:51 PM.</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user