Code Review
Instructions
When reviewing code:
- Read the full diff or file provided
- Check for security vulnerabilities (OWASP Top 10)
- Evaluate error handling completeness
- Assess code complexity and readability
- Verify naming conventions and code style
- Look for performance issues
- Check for proper input validation
Output Format
## Review Summary
[1-2 sentence overview]
## Findings
### CRITICAL
- [Finding with line reference and fix]
### WARNING
- [Finding with line reference and fix]
### SUGGESTION
- [Finding with line reference and fix]
## What's Done Well
- [Positive observations]
Example Finding
### CRITICAL
- **Line 42**: SQL injection vulnerability — user input concatenated directly into query string.
Fix: Use parameterized queries instead of string concatenation.
```python
# Before (vulnerable)
cursor.execute(f"SELECT * FROM users WHERE id = {user_id}")
# After (safe)
cursor.execute("SELECT * FROM users WHERE id = %s", (user_id,))