Date: Wed, 19 Jun 2013 20:46:23 +0000 (UTC) From: Eitan Adler <eadler@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r321322 - head/security/vuxml/files Message-ID: <201306192046.r5JKkNpb069061@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: eadler Date: Wed Jun 19 20:46:23 2013 New Revision: 321322 URL: http://svnweb.freebsd.org/changeset/ports/321322 Log: Add an additional validation script to the vuxml port. At this point it is not tied to the validate: target because validation fails. Reviewed by: simon, delphij With Hat: ports-secteam Added: head/security/vuxml/files/extra-validation.py (contents, props changed) Added: head/security/vuxml/files/extra-validation.py ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/security/vuxml/files/extra-validation.py Wed Jun 19 20:46:23 2013 (r321322) @@ -0,0 +1,69 @@ +#!/usr/bin/env python3 +# $FreeBSD$ + +import datetime +import xml.etree.ElementTree as ET +import sys + +tree = ET.parse('../vuln.xml') +root = tree.getroot() + +namespace = "{http://www.vuxml.org/apps/vuxml-1}" + +ret = 0 + + +def dateof(string): + return datetime.datetime.strptime(string, "%Y-%m-%d") + +all_vids = set() + + +for vuln in root: + vid = vuln.get("vid") + + cancelled = False if vuln.find(namespace+"cancelled") is None else True + if cancelled: + continue + + # Validate Vids + if vid in all_vids: + print("Error: duplicate vid : {0}".format(vid)) + all_vids.add(vid) + + # Validate References + references = vuln.find(namespace+"references") + if references is None: + print("Error: references is None : {0}".format(vid)) + ret = 1 + else: + prev = references[0] + for reference in references: + if reference.tag < prev.tag: + #print("Warn: tags out of order ({1} and {2}): {0}".format(vid, prev.tag[len(namespace):], reference.tag[len(namespace):])) + pass + prev = reference + + # Validate Dates + dates = vuln.find(namespace+"dates") + if dates is None: + print("Error: no date : {0}".format(vid)) + ret = 1 + else: + discovery = dates.find(namespace+"discovery") + entry = dates.find(namespace+"entry") + modified = dates.find(namespace+"modified") + if discovery is None: + print("Error: discovery is None : {0}".format(vid)) + ret = 1 + elif entry is None: + print("Error: entry is None : {0}".format(vid)) + ret = 1 + else: + if modified is None: + modified = entry + if not (dateof(discovery.text) <= dateof(entry.text) <= dateof(modified.text)): + print("Error: dates are insane : {0}".format(vid)) + ret = 1 + +sys.exit(ret)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201306192046.r5JKkNpb069061>