Proper fix

This commit is contained in:
Miroslav Stampar 2012-12-20 10:37:20 +01:00
parent 0d1ea7f05a
commit 3cbe60b586

View File

@ -5,6 +5,7 @@ Copyright (c) 2006-2012 sqlmap developers (http://sqlmap.org/)
See the file 'doc/COPYING' for copying permission See the file 'doc/COPYING' for copying permission
""" """
import codecs
import doctest import doctest
import os import os
import re import re
@ -18,6 +19,7 @@ from extra.beep.beep import beep
from lib.controller.controller import start from lib.controller.controller import start
from lib.core.common import clearConsoleLine from lib.core.common import clearConsoleLine
from lib.core.common import dataToStdout from lib.core.common import dataToStdout
from lib.core.common import getUnicode
from lib.core.common import randomStr from lib.core.common import randomStr
from lib.core.common import readXmlFile from lib.core.common import readXmlFile
from lib.core.data import conf from lib.core.data import conf
@ -26,6 +28,7 @@ from lib.core.data import paths
from lib.core.log import LOGGER_HANDLER from lib.core.log import LOGGER_HANDLER
from lib.core.option import init from lib.core.option import init
from lib.core.optiondict import optDict from lib.core.optiondict import optDict
from lib.core.settings import UNICODE_ENCODING
from lib.parse.cmdline import cmdLineParser from lib.parse.cmdline import cmdLineParser
failedItem = None failedItem = None
@ -235,26 +238,22 @@ def runCase(switches=None, parse=None):
retVal = False retVal = False
if parse and retVal: if parse and retVal:
ifile = open(conf.dumper.getOutputFile(), "rb") console = getUnicode(console, system=True)
content = ifile.read() with codecs.open(conf.dumper.getOutputFile(), "rb", UNICODE_ENCODING) as f:
ifile.close() content = f.read()
for item, console_output in parse: for item, console_output in parse:
if console_output is True: parse_on = console if console_output else content
parse_on = console
else:
parse_on = content
if item.startswith("r'") and item.endswith("'"): if item.startswith("r'") and item.endswith("'"):
if not re.search(item[2:-1], parse_on, re.DOTALL): if not re.search(item[2:-1], parse_on, re.DOTALL):
retVal = False retVal = False
failedItem = item failedItem = item
break break
elif parse_on.find(item) < 0:
elif item not in parse_on:
retVal = False retVal = False
failedItem = item failedItem = item
break break
cleanCase() cleanCase()