From 4892be9819efcd52999f276bc1abab800b6a1828 Mon Sep 17 00:00:00 2001 From: Roman Babenko Date: Tue, 25 Jun 2024 14:08:31 +0300 Subject: [PATCH] warning fix (#571) --- credsweeper/credentials/credential_manager.py | 22 ++++++++++++++----- credsweeper/scanner/scan_type/scan_type.py | 11 ++++++++-- 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/credsweeper/credentials/credential_manager.py b/credsweeper/credentials/credential_manager.py index fb21b50b0..2f1dec2e0 100644 --- a/credsweeper/credentials/credential_manager.py +++ b/credsweeper/credentials/credential_manager.py @@ -60,16 +60,26 @@ def purge_duplicates(self) -> int: Returns: number of removed duplicates """ - candidates_dict: Dict[Tuple[str, str, str, int, int, int, int, int], Candidate] = {} + candidates_dict: Dict[Tuple[str, str, str, int, int, int, int, int, int, int], Candidate] = {} before = len(self.candidates) for i in self.candidates: ld = i.line_data_list[0] - candidate_key = (i.rule_name, ld.path, ld.info, ld.line_pos, ld.variable_start, ld.variable_start, - ld.value_start, ld.value_end) + candidate_key = ( + i.rule_name, # + ld.path, # + ld.info, # + ld.line_pos, # + ld.variable_start, # + ld.variable_end, # + ld.separator_start, # + ld.separator_end, # + ld.value_start, # + ld.value_end) if candidate_key in candidates_dict: - # check precisely - if candidates_dict[candidate_key].compare(i): - ld_ = candidates_dict[candidate_key].line_data_list[0] + # check precisely - compare with the values + candidate_dict = candidates_dict[candidate_key] + if not candidate_dict.compare(i): + ld_ = candidate_dict.line_data_list[0] logger.warning(f"check {ld_.variable, ld_.value} and {ld.variable, ld.value}") else: candidates_dict[candidate_key] = i diff --git a/credsweeper/scanner/scan_type/scan_type.py b/credsweeper/scanner/scan_type/scan_type.py index 17ea97c1d..68b1b0654 100644 --- a/credsweeper/scanner/scan_type/scan_type.py +++ b/credsweeper/scanner/scan_type/scan_type.py @@ -118,8 +118,15 @@ def get_line_data_list( continue if target.offset is not None: # the target line is a chunk of long line - offsets have to be corrected - line_data.variable_start += target.offset - line_data.variable_end += target.offset + if 0 <= line_data.variable_start: + line_data.variable_start += target.offset + if 0 <= line_data.variable_end: + line_data.variable_end += target.offset + if 0 <= line_data.separator_start: + line_data.separator_start += target.offset + if 0 <= line_data.separator_end: + line_data.separator_end += target.offset + # value positions are mandatory line_data.value_start += target.offset line_data.value_end += target.offset # get the original line