2727from xml .sax .handler import ContentHandler
2828
2929from lib .core .common import checkFile
30+ from lib .core .common import getCompiledRegex
3031from lib .core .common import parseXmlFile
3132from lib .core .common import sanitizeStr
3233from lib .core .data import kb
@@ -76,7 +77,8 @@ def characters(self, data):
7677 def endElement (self , name ):
7778 if name == "signature" :
7879 for version in (self .__version , self .__versionAlt ):
79- if version and re .search (" %s[\.\ ]+" % version , self .__banner ):
80+ regObj = getCompiledRegex (" %s[\.\ ]+" % version )
81+ if version and regObj .search (self .__banner ):
8082 self .__feedInfo ("dbmsRelease" , self .__release )
8183 self .__feedInfo ("dbmsVersion" , self .__version )
8284 self .__feedInfo ("dbmsServicePack" , self .__servicePack )
@@ -89,8 +91,9 @@ def endElement(self, name):
8991 elif name == "version" :
9092 self .__inVersion = False
9193 self .__version = self .__version .replace (" " , "" )
92-
93- match = re .search (r"\A(?P<major>\d+)\.00\.(?P<build>\d+)\Z" , self .__version )
94+
95+ regObj = getCompiledRegex (r"\A(?P<major>\d+)\.00\.(?P<build>\d+)\Z" )
96+ match = regObj .search (self .__version )
9497 self .__versionAlt = "%s.0.%s.0" % (match .group ('major' ), match .group ('build' )) if match else None
9598
9699 elif name == "servicepack" :
0 commit comments