Skip to content

Commit 1ef3758

Browse files
committed
hotfix
1 parent 39678c1 commit 1ef3758

File tree

1 file changed

+17
-25
lines changed

1 file changed

+17
-25
lines changed

lazyc2.py

Lines changed: 17 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -99,46 +99,38 @@ def clean_json(texto):
9999
def load_yaml_safely(file_path):
100100
"""Load a YAML file safely with error handling and default values."""
101101
try:
102-
103-
path = Path(file_path)
104-
105-
106-
if '..' in path.parts:
107-
logger.error(f"Path traversal attempt detected: {file_path}")
102+
if not file_path or not isinstance(file_path, str):
103+
logger.error("Invalid file_path: must be a non-empty string")
108104
return None
109105

106+
clean_path = os.path.normpath(file_path.strip())
110107

111-
resolved_path = path.resolve()
112-
113-
114-
if resolved_path.suffix.lower() not in ['.yml', '.yaml']:
115-
logger.error(f"Invalid file extension: {file_path}")
108+
if '..' in clean_path:
109+
logger.error(f"Path traversal detected: {file_path}")
116110
return None
117111

118-
119-
if not resolved_path.exists():
120-
logger.error(f"YAML file not found: {resolved_path}")
112+
if not (clean_path.lower().endswith('.yml') or clean_path.lower().endswith('.yaml')):
113+
logger.error(f"Invalid file extension: {file_path}")
121114
return None
122115

123-
if not resolved_path.is_file():
124-
logger.error(f"Path is not a regular file: {resolved_path}")
116+
if not os.path.exists(clean_path):
117+
logger.error(f"YAML file not found: {clean_path}")
125118
return None
126-
127-
if not os.access(resolved_path, os.R_OK):
128-
logger.error(f"No read permission for file: {resolved_path}")
119+
120+
if not os.path.isfile(clean_path):
121+
logger.error(f"Path is not a regular file: {clean_path}")
129122
return None
130123

131-
file_size = resolved_path.stat().st_size
132-
max_size = 10 * 1024 * 1024
133-
if file_size > max_size:
134-
logger.error(f"File too large ({file_size} bytes): {resolved_path}")
124+
file_size = os.path.getsize(clean_path)
125+
if file_size > 10 * 1024 * 1024: # 10MB
126+
logger.error(f"File too large ({file_size} bytes): {clean_path}")
135127
return None
136128

137-
with open(resolved_path, 'r', encoding='utf-8') as f:
129+
with open(clean_path, 'r', encoding='utf-8') as f:
138130
data = yaml.safe_load(f)
139131

140132
if not data:
141-
logger.error(f"Empty YAML file: {resolved_path}")
133+
logger.error(f"Empty YAML file: {clean_path}")
142134
return None
143135

144136
data.setdefault('beacon_url', '')

0 commit comments

Comments
 (0)