minor optimization (only way to prematurely stop SAX parser)

This commit is contained in:
Miroslav Stampar 2011-01-23 10:12:01 +00:00
parent 30cd877c4a
commit 3a5f0760f6
2 changed files with 10 additions and 1 deletions

View File

@ -20,6 +20,9 @@ class sqlmapConnectionException(Exception):
class sqlmapDataException(Exception):
pass
class sqlmapEndSAXParsing(Exception):
pass
class sqlmapFilePathException(Exception):
pass

View File

@ -16,6 +16,7 @@ from lib.core.common import parseXmlFile
from lib.core.common import sanitizeStr
from lib.core.data import kb
from lib.core.data import paths
from lib.core.exception import sqlmapEndSAXParsing
from lib.core.threads import getCurrentThreadData
class htmlHandler(ContentHandler):
@ -47,6 +48,7 @@ class htmlHandler(ContentHandler):
self.__match = None
threadData = getCurrentThreadData()
threadData.lastErrorPage = (threadData.lastRequestUID, self.__page)
raise sqlmapEndSAXParsing
def htmlParser(page):
"""
@ -58,7 +60,11 @@ def htmlParser(page):
checkFile(xmlfile)
page = sanitizeStr(page)
handler = htmlHandler(page)
parseXmlFile(xmlfile, handler)
try:
parseXmlFile(xmlfile, handler)
except sqlmapEndSAXParsing:
pass
if handler.dbms and handler.dbms not in kb.htmlFp:
kb.lastParserStatus = handler.dbms