
import re

from lib.core.exception import SqlmapUndefinedMethod

class Syntax:
    """
    This class defines generic syntax functionalities for plugins.
    """

    def __init__(self):
        pass

    @staticmethod
    def _escape(expression, quote=True, escaper=None):
        retVal = expression

        if quote:
            for item in re.findall(r"'[^']*'+", expression, re.S):
                retVal = retVal.replace(item, escaper(item[1:-1]))
        else:
            retVal = escaper(expression)

        return retVal

    @staticmethod
    def escape(expression, quote=True):
        errMsg = "'escape' method must be defined "
        errMsg += "inside the specific DBMS plugin"
        raise SqlmapUndefinedMethod(errMsg)


import re

from lib.core.exception import SqlmapUndefinedMethod

class Syntax:
    """
    This class defines generic syntax functionalities for plugins.
    """

    def __init__(self):
        pass

    @staticmethod
    def _escape(expression, quote=True, escaper=None):
        retVal = expression

        if quote:
            for item in re.findall(r"'[^']*'+", expression, re.S):
                _ = item[1:-1]
                if _:
                    retVal = retVal.replace(item, escaper(_))
        else:
            retVal = escaper(expression)

        return retVal

    @staticmethod
    def escape(expression, quote=True):
        errMsg = "'escape' method must be defined "
        errMsg += "inside the specific DBMS plugin"
        raise SqlmapUndefinedMethod(errMsg)

Fix for empty strings (previously '' was just removed)
Fix for empty strings (previously '' was just removed)

  
  import re
  
  from lib.core.exception import SqlmapUndefinedMethod
  
  class Syntax:
      """
      This class defines generic syntax functionalities for plugins.
      """
  
      def __init__(self):
          pass
  
      @staticmethod
      def _escape(expression, quote=True, escaper=None):
          retVal = expression
  
          if quote:
              for item in re.findall(r"'[^']*'+", expression, re.S):
+                 _ = item[1:-1]
+                 if _:
-                 retVal = retVal.replace(item, escaper(item[1:-1]))
+                     retVal = retVal.replace(item, escaper(_))
          else:
              retVal = escaper(expression)
  
          return retVal
  
      @staticmethod
      def escape(expression, quote=True):
          errMsg = "'escape' method must be defined "
          errMsg += "inside the specific DBMS plugin"
          raise SqlmapUndefinedMethod(errMsg)
  
Fix for empty strings (previously '' was just removed)
## Code Before:

import re

from lib.core.exception import SqlmapUndefinedMethod

class Syntax:
    """
    This class defines generic syntax functionalities for plugins.
    """

    def __init__(self):
        pass

    @staticmethod
    def _escape(expression, quote=True, escaper=None):
        retVal = expression

        if quote:
            for item in re.findall(r"'[^']*'+", expression, re.S):
                retVal = retVal.replace(item, escaper(item[1:-1]))
        else:
            retVal = escaper(expression)

        return retVal

    @staticmethod
    def escape(expression, quote=True):
        errMsg = "'escape' method must be defined "
        errMsg += "inside the specific DBMS plugin"
        raise SqlmapUndefinedMethod(errMsg)

## Instruction:
Fix for empty strings (previously '' was just removed)
## Code After:

import re

from lib.core.exception import SqlmapUndefinedMethod

class Syntax:
    """
    This class defines generic syntax functionalities for plugins.
    """

    def __init__(self):
        pass

    @staticmethod
    def _escape(expression, quote=True, escaper=None):
        retVal = expression

        if quote:
            for item in re.findall(r"'[^']*'+", expression, re.S):
                _ = item[1:-1]
                if _:
                    retVal = retVal.replace(item, escaper(_))
        else:
            retVal = escaper(expression)

        return retVal

    @staticmethod
    def escape(expression, quote=True):
        errMsg = "'escape' method must be defined "
        errMsg += "inside the specific DBMS plugin"
        raise SqlmapUndefinedMethod(errMsg)
