Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions osv/sources.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import hashlib
import logging
import os
import re

import jsonschema
import pygit2
Expand Down Expand Up @@ -178,6 +179,11 @@ def parse_vulnerability_from_dict(data, key_path=None, strict=False):
if not vulnerability.id:
raise ValueError('Missing id field. Invalid vulnerability.')

if vulnerability.summary:
vulnerability.summary = _sanitize_string(vulnerability.summary)
if vulnerability.details:
vulnerability.details = _sanitize_string(vulnerability.details)

return vulnerability


Expand Down Expand Up @@ -230,6 +236,12 @@ def _write_vulnerability_dict(data, output_path,
os.utime(output_path, (modified_date_timestamp, modified_date_timestamp))


def _sanitize_string(text):
"""Sanitize string by removing anchor tags."""
# Remove <a href="...">text</a> and keep text.
return re.sub(r'<a [^>]*>(.*?)</a>', r'\1', text, flags=re.IGNORECASE | re.DOTALL)


def write_vulnerability(vulnerability: vulnerability_pb2.Vulnerability,
output_path,
key_path=None):
Expand Down