diff --git a/lib/core/option.py b/lib/core/option.py index 6a2f17d71..213a973b2 100644 --- a/lib/core/option.py +++ b/lib/core/option.py @@ -1325,8 +1325,11 @@ def __cleanupOptions(): if conf.optimize: #conf.predictOutput = True conf.keepAlive = True - conf.nullConnection = not any([conf.textOnly, conf.titles]) conf.threads = 3 if conf.threads < 3 else conf.threads + conf.nullConnection = not any([conf.data, conf.textOnly, conf.titles, conf.string, conf.regexp]) + if not conf.nullConnection: + debugMsg = "turning off --null-connection switch used indirectly by switch -o" + logger.debug(debugMsg) if conf.data: conf.data = urldecode(conf.data) @@ -1337,12 +1340,6 @@ def __cleanupOptions(): if conf.dbms: conf.dbms = conf.dbms.capitalize() - if conf.optimize and any([conf.data, conf.textOnly, conf.titles]): - conf.nullConnection = False - - debugMsg = "turning off --null-connection switch used indirectly by switch -o" - logger.debug(debugMsg) - if conf.timeSec not in kb.explicitSettings: if conf.tor: conf.timeSec = 2 * conf.timeSec @@ -1749,6 +1746,14 @@ def __basicOptionValidation(): errMsg = "switch --data is incompatible with switch --null-connection" raise sqlmapSyntaxException, errMsg + if conf.string and conf.nullConnection: + errMsg = "switch --string is incompatible with switch --null-connection" + raise sqlmapSyntaxException, errMsg + + if conf.regexp and conf.nullConnection: + errMsg = "switch --regexp is incompatible with switch --null-connection" + raise sqlmapSyntaxException, errMsg + if conf.predictOutput and conf.threads > 1: errMsg = "switch --predict-output is incompatible with switch --threads" raise sqlmapSyntaxException, errMsg