Skip to content

Commit

Permalink
Applying requested changes:
Browse files Browse the repository at this point in the history
- Fix procmon #276
- Move signal handling to FuzzLoggerCurses
- Make it possible to have other logger classes besides FuzzLoggerCurses
  • Loading branch information
SR4ven committed May 20, 2019
1 parent 06dd3fb commit ac4afff
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 12 deletions.
4 changes: 4 additions & 0 deletions boofuzz/fuzz_logger_curses.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import sys
import time
import curses
import signal
import threading

from math import *
Expand Down Expand Up @@ -109,8 +110,11 @@ def __init__(self,
curses.init_pair(6, curses.COLOR_MAGENTA, -1)
curses.init_pair(7, curses.COLOR_BLACK, curses.COLOR_WHITE)

# Start thread and restore the original SIGWINCH handler
self._draw_thread = threading.Thread(name="curses_logger", target=self._draw_screen)
current_signal_handler = signal.getsignal(signal.SIGWINCH)
self._draw_thread.start()
signal.signal(signal.SIGWINCH, current_signal_handler)

def open_test_case(self, test_case_id, name, index, *args, **kwargs):
self._log_storage = []
Expand Down
2 changes: 1 addition & 1 deletion boofuzz/pedrpc.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from . import exception


class Client:
class Client(object):
def __init__(self, host, port):
self.__host = host
self.__port = port
Expand Down
14 changes: 6 additions & 8 deletions boofuzz/sessions.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
import zlib
import socket
import errno
import signal

from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop
Expand Down Expand Up @@ -377,13 +376,12 @@ def __init__(self, session_filename=None, index_start=1, index_end=None, sleep_t
if fuzz_data_logger is not None:
raise exception.BoofuzzError('Session fuzz_data_logger is deprecated. Use fuzz_loggers instead!')
if fuzz_loggers is None:
if self.console_gui and os.name != 'nt':
default_signal_handler = signal.getsignal(signal.SIGWINCH)
fuzz_loggers = [fuzz_logger_curses.FuzzLoggerCurses(web_port=self.web_port)]
self._keep_web_open = False
signal.signal(signal.SIGWINCH, default_signal_handler)
else:
fuzz_loggers = [fuzz_logger_text.FuzzLoggerText()]
fuzz_loggers = []
if self.console_gui and os.name != 'nt':
fuzz_loggers.append(fuzz_logger_curses.FuzzLoggerCurses(web_port=self.web_port))
self._keep_web_open = False
if len(fuzz_loggers) == 0:
fuzz_loggers = [fuzz_logger_text.FuzzLoggerText()]

helpers.mkdir_safe(os.path.join(constants.RESULTS_DIR))
self._run_id = datetime.datetime.utcnow().replace(microsecond=0).isoformat().replace(':', '-')
Expand Down
5 changes: 2 additions & 3 deletions boofuzz/utils/debugger_thread_simple.py
Original file line number Diff line number Diff line change
Expand Up @@ -181,9 +181,8 @@ def post_send(self):
if self.isAlive():
return True
else:
rec_file = open(self.process_monitor.crash_filename, 'a')
rec_file.write(self.process_monitor.last_synopsis)
rec_file.close()
with open(self.process_monitor.crash_filename, 'a') as rec_file:
rec_file.write(self.process_monitor.last_synopsis.decode())

if self.process_monitor.coredump_dir is not None:
dest = os.path.join(self.process_monitor.coredump_dir, str(self.process_monitor.test_number))
Expand Down

0 comments on commit ac4afff

Please sign in to comment.