'Wrapper for leak functions such that addresses which contain NULL
bytes are not leaked.
This is useful if the address which is used for the leak is read in via
a string-reading function like ``scanf("%s")`` or smilar.'

@staticmethod
def NoNulls(function):

    @functools.wraps(function, updated=[])
    def null_wrapper(address, *a, **kw):
        if ('\x00' in pack(address)):
            log.info(('Ignoring    leak    request    for    %#x:    Contains    NULL    bytes' % address))
            return None
        return function(address, *a, **kw)
    return MemLeak(null_wrapper)
