コード例 #1
0
ファイル: search.py プロジェクト: zhuyue1314/segvault
    def main(self):
        """
        Run the search.
        Return True if ok, False otherwise.
        """

        # Initialize
        self.mainHeader()

        # Prepare search
        main_error = False
        try:
            # Run search
            limitedMemory(MEMORY_LIMIT, self.searchSubfiles)
        except KeyboardInterrupt:
            print >> stderr, "[!] Program interrupted (CTRL+C)"
            main_error = True
        except MemoryError:
            main_error = True
            print >> stderr, "[!] Memory error!"
        self.mainFooter()
        return not (main_error)
コード例 #2
0
    def main(self):
        """
        Run the search.
        Return True if ok, False otherwise.
        """

        # Initialize
        self.mainHeader()

        # Prepare search
        main_error = False
        try:
            # Run search
            limitedMemory(MEMORY_LIMIT, self.searchSubfiles)
        except KeyboardInterrupt:
            print >> stderr, "[!] Program interrupted (CTRL+C)"
            main_error = True
        except MemoryError:
            main_error = True
            print >> stderr, "[!] Memory error!"
        self.mainFooter()
        return not (main_error)
コード例 #3
0
    def fuzzFile(self, fuzz):

        failure = False
        while fuzz.nb_extract < MAX_NB_EXTRACT:
            if SLEEP_SEC:
                sleep(SLEEP_SEC)
            self.log_error = 0
            fatal_error = False
            try:
                failure = limitedMemory(MEMORY_LIMIT, fuzz.extract)
                prefix = fuzz.prefix
            except KeyboardInterrupt:
                try:
                    failure = (
                        raw_input("Keep current file (y/n)?").strip() == "y")
                except (KeyboardInterrupt, EOFError):
                    print
                    failure = False
                prefix = "interrupt"
                fatal_error = True
            except MemoryError:
                print "MEMORY ERROR!"
                failure = True
                prefix = "memory"
            except Exception, err:
                print "EXCEPTION (%s): %s" % (err.__class__.__name__, err)
                failure = True
                prefix = "exception"
            if fatal_error:
                break
            if failure is None:
                if fuzz.tryUndo():
                    failure = False
                elif fuzz.is_original:
                    print "    Warning: Unsupported file format: remove %s from test suite" % fuzz.filename
                    self.filedb.remove(fuzz.filename)
                    return True
            if failure is None:
                break
            if failure:
                break
            if fuzz.acceptTruncate():
                if randint(0, TRUNCATE_RATE - 1) == 0:
                    fuzz.truncate()
                else:
                    fuzz.mangle()
            else:
                fuzz.mangle()
コード例 #4
0
ファイル: stress.py プロジェクト: zhuyue1314/segvault
    def fuzzFile(self, fuzz):

        failure = False
        while fuzz.nb_extract < MAX_NB_EXTRACT:
            if SLEEP_SEC:
                sleep(SLEEP_SEC)
            self.log_error = 0
            fatal_error = False
            try:
                failure = limitedMemory(MEMORY_LIMIT, fuzz.extract)
                prefix = fuzz.prefix
            except KeyboardInterrupt:
                try:
                    failure = raw_input("Keep current file (y/n)?").strip() == "y"
                except (KeyboardInterrupt, EOFError):
                    print
                    failure = False
                prefix = "interrupt"
                fatal_error = True
            except MemoryError:
                print "MEMORY ERROR!"
                failure = True
                prefix = "memory"
            except Exception, err:
                print "EXCEPTION (%s): %s" % (err.__class__.__name__, err)
                failure = True
                prefix = "exception"
            if fatal_error:
                break
            if failure is None:
                if fuzz.tryUndo():
                    failure = False
                elif fuzz.is_original:
                    print "    Warning: Unsupported file format: remove %s from test suite" % fuzz.filename
                    self.filedb.remove(fuzz.filename)
                    return True
            if failure is None:
                break
            if failure:
                break
            if fuzz.acceptTruncate():
                if randint(0, TRUNCATE_RATE - 1) == 0:
                    fuzz.truncate()
                else:
                    fuzz.mangle()
            else:
                fuzz.mangle()