version 1.4.3 documentation

This commit is contained in:
Jeremy Long
2016-09-06 08:48:40 -04:00
parent 44917ad0d3
commit e1a447f722
1225 changed files with 44138 additions and 39411 deletions

View File

@@ -204,53 +204,56 @@
<a class="jxr_linenumber" name="L196" href="#L196">196</a> <em class="jxr_javadoccomment"> * @param engine the dependency-check engine</em>
<a class="jxr_linenumber" name="L197" href="#L197">197</a> <em class="jxr_javadoccomment"> * @param contents the version information</em>
<a class="jxr_linenumber" name="L198" href="#L198">198</a> <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L199" href="#L199">199</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> analyzeSetVersionCommand(<a href="../../../../org/owasp/dependencycheck/dependency/Dependency.html">Dependency</a> dependency, <a href="../../../../org/owasp/dependencycheck/Engine.html">Engine</a> engine, String contents) {
<a class="jxr_linenumber" name="L200" href="#L200">200</a> <a href="../../../../org/owasp/dependencycheck/dependency/Dependency.html">Dependency</a> currentDep = dependency;
<a class="jxr_linenumber" name="L201" href="#L201">201</a>
<a class="jxr_linenumber" name="L202" href="#L202">202</a> <strong class="jxr_keyword">final</strong> Matcher m = SET_VERSION.matcher(contents);
<a class="jxr_linenumber" name="L203" href="#L203">203</a> <strong class="jxr_keyword">int</strong> count = 0;
<a class="jxr_linenumber" name="L204" href="#L204">204</a> <strong class="jxr_keyword">while</strong> (m.find()) {
<a class="jxr_linenumber" name="L205" href="#L205">205</a> count++;
<a class="jxr_linenumber" name="L206" href="#L206">206</a> LOGGER.debug(<span class="jxr_string">"Found project command match with {} groups: {}"</span>,
<a class="jxr_linenumber" name="L207" href="#L207">207</a> m.groupCount(), m.group(0));
<a class="jxr_linenumber" name="L208" href="#L208">208</a> String product = m.group(1);
<a class="jxr_linenumber" name="L209" href="#L209">209</a> <strong class="jxr_keyword">final</strong> String version = m.group(2);
<a class="jxr_linenumber" name="L210" href="#L210">210</a> LOGGER.debug(<span class="jxr_string">"Group 1: "</span> + product);
<a class="jxr_linenumber" name="L211" href="#L211">211</a> LOGGER.debug(<span class="jxr_string">"Group 2: "</span> + version);
<a class="jxr_linenumber" name="L212" href="#L212">212</a> <strong class="jxr_keyword">final</strong> String aliasPrefix = <span class="jxr_string">"ALIASOF_"</span>;
<a class="jxr_linenumber" name="L213" href="#L213">213</a> <strong class="jxr_keyword">if</strong> (product.startsWith(aliasPrefix)) {
<a class="jxr_linenumber" name="L214" href="#L214">214</a> product = product.replaceFirst(aliasPrefix, <span class="jxr_string">""</span>);
<a class="jxr_linenumber" name="L215" href="#L215">215</a> }
<a class="jxr_linenumber" name="L216" href="#L216">216</a> <strong class="jxr_keyword">if</strong> (count &gt; 1) {
<a class="jxr_linenumber" name="L217" href="#L217">217</a> <em class="jxr_comment">//TODO - refactor so we do not assign to the parameter (checkstyle)</em>
<a class="jxr_linenumber" name="L218" href="#L218">218</a> currentDep = <strong class="jxr_keyword">new</strong> <a href="../../../../org/owasp/dependencycheck/dependency/Dependency.html">Dependency</a>(dependency.getActualFile());
<a class="jxr_linenumber" name="L219" href="#L219">219</a> currentDep.setDisplayFileName(String.format(<span class="jxr_string">"%s:%s"</span>, dependency.getDisplayFileName(), product));
<a class="jxr_linenumber" name="L220" href="#L220">220</a> <strong class="jxr_keyword">final</strong> String filePath = String.format(<span class="jxr_string">"%s:%s"</span>, dependency.getFilePath(), product);
<a class="jxr_linenumber" name="L221" href="#L221">221</a> currentDep.setFilePath(filePath);
<a class="jxr_linenumber" name="L222" href="#L222">222</a>
<a class="jxr_linenumber" name="L223" href="#L223">223</a> byte[] path;
<a class="jxr_linenumber" name="L224" href="#L224">224</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L225" href="#L225">225</a> path = filePath.getBytes(<span class="jxr_string">"UTF-8"</span>);
<a class="jxr_linenumber" name="L226" href="#L226">226</a> } <strong class="jxr_keyword">catch</strong> (UnsupportedEncodingException ex) {
<a class="jxr_linenumber" name="L227" href="#L227">227</a> path = filePath.getBytes();
<a class="jxr_linenumber" name="L228" href="#L228">228</a> }
<a class="jxr_linenumber" name="L229" href="#L229">229</a> currentDep.setSha1sum(Checksum.getHex(sha1.digest(path)));
<a class="jxr_linenumber" name="L230" href="#L230">230</a> engine.getDependencies().add(currentDep);
<a class="jxr_linenumber" name="L231" href="#L231">231</a> }
<a class="jxr_linenumber" name="L232" href="#L232">232</a> <strong class="jxr_keyword">final</strong> String source = currentDep.getDisplayFileName();
<a class="jxr_linenumber" name="L233" href="#L233">233</a> currentDep.getProductEvidence().addEvidence(source, <span class="jxr_string">"Product"</span>,
<a class="jxr_linenumber" name="L234" href="#L234">234</a> product, Confidence.MEDIUM);
<a class="jxr_linenumber" name="L235" href="#L235">235</a> currentDep.getVersionEvidence().addEvidence(source, <span class="jxr_string">"Version"</span>,
<a class="jxr_linenumber" name="L236" href="#L236">236</a> version, Confidence.MEDIUM);
<a class="jxr_linenumber" name="L237" href="#L237">237</a> }
<a class="jxr_linenumber" name="L238" href="#L238">238</a> LOGGER.debug(String.format(<span class="jxr_string">"Found %d matches."</span>, count));
<a class="jxr_linenumber" name="L239" href="#L239">239</a> }
<a class="jxr_linenumber" name="L240" href="#L240">240</a>
<a class="jxr_linenumber" name="L241" href="#L241">241</a> @Override
<a class="jxr_linenumber" name="L242" href="#L242">242</a> <strong class="jxr_keyword">protected</strong> String getAnalyzerEnabledSettingKey() {
<a class="jxr_linenumber" name="L243" href="#L243">243</a> <strong class="jxr_keyword">return</strong> Settings.KEYS.ANALYZER_CMAKE_ENABLED;
<a class="jxr_linenumber" name="L244" href="#L244">244</a> }
<a class="jxr_linenumber" name="L245" href="#L245">245</a> }
<a class="jxr_linenumber" name="L199" href="#L199">199</a> @edu.umd.cs.findbugs.annotations.SuppressFBWarnings(
<a class="jxr_linenumber" name="L200" href="#L200">200</a> value = <span class="jxr_string">"DM_DEFAULT_ENCODING"</span>,
<a class="jxr_linenumber" name="L201" href="#L201">201</a> justification = <span class="jxr_string">"Default encoding is only used if UTF-8 is not available"</span>)
<a class="jxr_linenumber" name="L202" href="#L202">202</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> analyzeSetVersionCommand(<a href="../../../../org/owasp/dependencycheck/dependency/Dependency.html">Dependency</a> dependency, <a href="../../../../org/owasp/dependencycheck/Engine.html">Engine</a> engine, String contents) {
<a class="jxr_linenumber" name="L203" href="#L203">203</a> <a href="../../../../org/owasp/dependencycheck/dependency/Dependency.html">Dependency</a> currentDep = dependency;
<a class="jxr_linenumber" name="L204" href="#L204">204</a>
<a class="jxr_linenumber" name="L205" href="#L205">205</a> <strong class="jxr_keyword">final</strong> Matcher m = SET_VERSION.matcher(contents);
<a class="jxr_linenumber" name="L206" href="#L206">206</a> <strong class="jxr_keyword">int</strong> count = 0;
<a class="jxr_linenumber" name="L207" href="#L207">207</a> <strong class="jxr_keyword">while</strong> (m.find()) {
<a class="jxr_linenumber" name="L208" href="#L208">208</a> count++;
<a class="jxr_linenumber" name="L209" href="#L209">209</a> LOGGER.debug(<span class="jxr_string">"Found project command match with {} groups: {}"</span>,
<a class="jxr_linenumber" name="L210" href="#L210">210</a> m.groupCount(), m.group(0));
<a class="jxr_linenumber" name="L211" href="#L211">211</a> String product = m.group(1);
<a class="jxr_linenumber" name="L212" href="#L212">212</a> <strong class="jxr_keyword">final</strong> String version = m.group(2);
<a class="jxr_linenumber" name="L213" href="#L213">213</a> LOGGER.debug(<span class="jxr_string">"Group 1: "</span> + product);
<a class="jxr_linenumber" name="L214" href="#L214">214</a> LOGGER.debug(<span class="jxr_string">"Group 2: "</span> + version);
<a class="jxr_linenumber" name="L215" href="#L215">215</a> <strong class="jxr_keyword">final</strong> String aliasPrefix = <span class="jxr_string">"ALIASOF_"</span>;
<a class="jxr_linenumber" name="L216" href="#L216">216</a> <strong class="jxr_keyword">if</strong> (product.startsWith(aliasPrefix)) {
<a class="jxr_linenumber" name="L217" href="#L217">217</a> product = product.replaceFirst(aliasPrefix, <span class="jxr_string">""</span>);
<a class="jxr_linenumber" name="L218" href="#L218">218</a> }
<a class="jxr_linenumber" name="L219" href="#L219">219</a> <strong class="jxr_keyword">if</strong> (count &gt; 1) {
<a class="jxr_linenumber" name="L220" href="#L220">220</a> <em class="jxr_comment">//TODO - refactor so we do not assign to the parameter (checkstyle)</em>
<a class="jxr_linenumber" name="L221" href="#L221">221</a> currentDep = <strong class="jxr_keyword">new</strong> <a href="../../../../org/owasp/dependencycheck/dependency/Dependency.html">Dependency</a>(dependency.getActualFile());
<a class="jxr_linenumber" name="L222" href="#L222">222</a> currentDep.setDisplayFileName(String.format(<span class="jxr_string">"%s:%s"</span>, dependency.getDisplayFileName(), product));
<a class="jxr_linenumber" name="L223" href="#L223">223</a> <strong class="jxr_keyword">final</strong> String filePath = String.format(<span class="jxr_string">"%s:%s"</span>, dependency.getFilePath(), product);
<a class="jxr_linenumber" name="L224" href="#L224">224</a> currentDep.setFilePath(filePath);
<a class="jxr_linenumber" name="L225" href="#L225">225</a>
<a class="jxr_linenumber" name="L226" href="#L226">226</a> byte[] path;
<a class="jxr_linenumber" name="L227" href="#L227">227</a> <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L228" href="#L228">228</a> path = filePath.getBytes(<span class="jxr_string">"UTF-8"</span>);
<a class="jxr_linenumber" name="L229" href="#L229">229</a> } <strong class="jxr_keyword">catch</strong> (UnsupportedEncodingException ex) {
<a class="jxr_linenumber" name="L230" href="#L230">230</a> path = filePath.getBytes();
<a class="jxr_linenumber" name="L231" href="#L231">231</a> }
<a class="jxr_linenumber" name="L232" href="#L232">232</a> currentDep.setSha1sum(Checksum.getHex(sha1.digest(path)));
<a class="jxr_linenumber" name="L233" href="#L233">233</a> engine.getDependencies().add(currentDep);
<a class="jxr_linenumber" name="L234" href="#L234">234</a> }
<a class="jxr_linenumber" name="L235" href="#L235">235</a> <strong class="jxr_keyword">final</strong> String source = currentDep.getDisplayFileName();
<a class="jxr_linenumber" name="L236" href="#L236">236</a> currentDep.getProductEvidence().addEvidence(source, <span class="jxr_string">"Product"</span>,
<a class="jxr_linenumber" name="L237" href="#L237">237</a> product, Confidence.MEDIUM);
<a class="jxr_linenumber" name="L238" href="#L238">238</a> currentDep.getVersionEvidence().addEvidence(source, <span class="jxr_string">"Version"</span>,
<a class="jxr_linenumber" name="L239" href="#L239">239</a> version, Confidence.MEDIUM);
<a class="jxr_linenumber" name="L240" href="#L240">240</a> }
<a class="jxr_linenumber" name="L241" href="#L241">241</a> LOGGER.debug(String.format(<span class="jxr_string">"Found %d matches."</span>, count));
<a class="jxr_linenumber" name="L242" href="#L242">242</a> }
<a class="jxr_linenumber" name="L243" href="#L243">243</a>
<a class="jxr_linenumber" name="L244" href="#L244">244</a> @Override
<a class="jxr_linenumber" name="L245" href="#L245">245</a> <strong class="jxr_keyword">protected</strong> String getAnalyzerEnabledSettingKey() {
<a class="jxr_linenumber" name="L246" href="#L246">246</a> <strong class="jxr_keyword">return</strong> Settings.KEYS.ANALYZER_CMAKE_ENABLED;
<a class="jxr_linenumber" name="L247" href="#L247">247</a> }
<a class="jxr_linenumber" name="L248" href="#L248">248</a> }
</pre>
<hr/>
<div id="footer">Copyright &#169; 2012&#x2013;2016 <a href="http://www.owasp.org">OWASP</a>. All rights reserved.</div>