Skip to content

Commit 24f1fa6

Browse files
authored
Merge pull request DefectDojo#662 from DefectDojo/dev
Dev
2 parents 5145c3a + 540b1ca commit 24f1fa6

File tree

3 files changed

+19
-12
lines changed

3 files changed

+19
-12
lines changed

dojo/models.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1004,7 +1004,13 @@ class Meta:
10041004
ordering = ('numerical_severity', '-date', 'title')
10051005

10061006
def get_hash_code(self):
1007-
hash_string = self.title + self.description + str(self.line) + str(self.file_path)
1007+
hash_string = self.title + str(self.cwe) + str(self.line) + str(self.file_path)
1008+
1009+
if self.dynamic_finding:
1010+
endpoint_str = ""
1011+
for e in self.endpoints.all():
1012+
endpoint_str += str(e)
1013+
hash_string = endpoint_str
10081014
hash_string = hash_string.decode('utf-8').strip()
10091015
return hashlib.sha256(hash_string.encode('utf-8')).hexdigest()
10101016

@@ -1137,8 +1143,8 @@ def save(self, dedupe_option=True, rules_option=True, *args, **kwargs):
11371143
if not self.pk:
11381144
from dojo.utils import apply_cwe_to_template
11391145
self = apply_cwe_to_template(self)
1140-
self.hash_code = self.get_hash_code()
11411146
super(Finding, self).save(*args, **kwargs)
1147+
self.hash_code = self.get_hash_code()
11421148
self.found_by.add(self.test.test_type)
11431149
if self.test.test_type.static_tool:
11441150
self.static_finding = True

dojo/templates/dojo/view_finding.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -495,7 +495,7 @@ <h4>Steps To Reproduce <span class="pull-right"><a data-toggle="collapse" href="
495495
class="glyphicon glyphicon-chevron-up"></i></a></span></h4>
496496
</div>
497497
<div id="vuln_refs" class="panel-body collapse in">
498-
<pre>{{ finding.steps_to_reproduce|markdown_render }}</pre>
498+
<pre>{{ finding.steps_to_reproduce|markdown_render|default_if_none:"" }}</pre>
499499
</div>
500500
</div>
501501

@@ -505,7 +505,7 @@ <h4>Severity Justification <span class="pull-right"><a data-toggle="collapse" hr
505505
class="glyphicon glyphicon-chevron-up"></i></a></span></h4>
506506
</div>
507507
<div id="vuln_refs" class="panel-body collapse in">
508-
<pre>{{ finding.severity_justification|markdown_render }}</pre>
508+
<pre>{{ finding.severity_justification|markdown_render|default_if_none:"" }}</pre>
509509
</div>
510510
</div>
511511

dojo/utils.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -58,14 +58,15 @@ def sync_dedupe(new_finding, *args, **kwargs):
5858
eng_hash_code = Finding.objects.filter(
5959
test__engagement__product=new_finding.test.engagement.product,
6060
hash_code=new_finding.hash_code, duplicate=False).exclude(id=new_finding.id)
61-
for find in eng_hash_code:
62-
new_finding.duplicate = True
63-
new_finding.active = False
64-
new_finding.verified = False
65-
new_finding.duplicate_finding = find
66-
find.duplicate_list.add(new_finding)
67-
find.found_by.add(new_finding.test.test_type)
68-
super(Finding, new_finding).save(*args, **kwargs)
61+
if eng_hash_code.count() > 0:
62+
for find in eng_hash_code:
63+
new_finding.duplicate = True
64+
new_finding.active = False
65+
new_finding.verified = False
66+
new_finding.duplicate_finding = find
67+
find.duplicate_list.add(new_finding)
68+
find.found_by.add(new_finding.test.test_type)
69+
super(Finding, new_finding).save(*args, **kwargs)
6970
else:
7071
eng_findings_cwe = Finding.objects.filter(
7172
test__engagement__product=new_finding.test.engagement.product,

0 commit comments

Comments
 (0)