Skip to content

Commit e28d312

Browse files
committed
fix: safeguard against splitting with empty string; Fixes #33
1 parent 317023e commit e28d312

File tree

1 file changed

+30
-29
lines changed

1 file changed

+30
-29
lines changed

technology_specific_extractors/http_security/hts_entry.py

Lines changed: 30 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -29,35 +29,36 @@ def detect_configurations(dfd):
2929
if "configure(" + c_class in line:
3030
objects.append(line.split(c_class)[1].split(")")[0].strip())
3131
for object in objects:
32-
for line_nr in range(len(results[r]["content"])):
33-
line = results[r]["content"][line_nr]
34-
configuration = False
35-
if object in line:
36-
if ";" in line:
37-
configuration = line.split(object)[1].split(";")[0].strip(" .")
38-
else: # multi-line
39-
found = False
40-
counter = line_nr
41-
configuration = line.strip()
42-
43-
while not found and counter < len(results[r]["content"]) - 1:
44-
counter += 1
45-
new_line = results[r]["content"][counter]
46-
new_line = new_line.strip()
47-
48-
if not new_line.strip()[0:2] == "//":
49-
new_configuration = configuration + new_line
50-
configuration = new_configuration
51-
52-
if ";" in new_line:
53-
found = True
54-
55-
if configuration:
56-
configuration = configuration.replace(" ", "")
57-
if "{" in configuration:
58-
configuration = configuration.split("{")[1]
59-
if object + "." in configuration:
60-
configurations.add((configuration, results[r]["path"], results[r]["line_nr"], results[r]["span"]))
32+
if object:
33+
for line_nr in range(len(results[r]["content"])):
34+
line = results[r]["content"][line_nr]
35+
configuration = False
36+
if object in line:
37+
if ";" in line:
38+
configuration = line.split(object)[1].split(";")[0].strip(" .")
39+
else: # multi-line
40+
found = False
41+
counter = line_nr
42+
configuration = line.strip()
43+
44+
while not found and counter < len(results[r]["content"]) - 1:
45+
counter += 1
46+
new_line = results[r]["content"][counter]
47+
new_line = new_line.strip()
48+
49+
if not new_line.strip()[0:2] == "//":
50+
new_configuration = configuration + new_line
51+
configuration = new_configuration
52+
53+
if ";" in new_line:
54+
found = True
55+
56+
if configuration:
57+
configuration = configuration.replace(" ", "")
58+
if "{" in configuration:
59+
configuration = configuration.split("{")[1]
60+
if object + "." in configuration:
61+
configurations.add((configuration, results[r]["path"], results[r]["line_nr"], results[r]["span"]))
6162
configuration_tuples.append((microservice, configurations))
6263

6364
return configuration_tuples

0 commit comments

Comments
 (0)