@@ -277,12 +277,14 @@ class Session(pgraph.Graph):
277277 fuzz_data_logger (fuzz_logger.FuzzLogger): DEPRECATED. Use fuzz_loggers instead.
278278 fuzz_loggers (list of ifuzz_logger.IFuzzLogger): For saving test data and results.. Default Log to STDOUT.
279279 receive_data_after_each_request (bool): If True, Session will attempt to receive a reply after transmitting
280- each node. Default True.
280+ each non-fuzzed node. Default True.
281281 check_data_received_each_request (bool): If True, Session will verify that some data has
282- been received after transmitting each node, and if not, register a
283- failure. If False, this check will not be performed. Default False.
284- A receive attempt is still made unless receive_data_after_each_request
285- is False.
282+ been received after transmitting each non-fuzzed node, and if not,
283+ register a failure. If False, this check will not be performed. Default
284+ False. A receive attempt is still made unless
285+ receive_data_after_each_request is False.
286+ receive_data_after_fuzz (bool): If True, Session will attempt to receive a reply after transmitting
287+ a fuzzed message. Default False.
286288 ignore_connection_reset (bool): Log ECONNRESET errors ("Target connection reset") as "info" instead of
287289 failures.
288290 ignore_connection_aborted (bool): Log ECONNABORTED errors as "info" instead of failures.
@@ -309,6 +311,7 @@ def __init__(self, session_filename=None, index_start=1, index_end=None, sleep_t
309311 fuzz_loggers = None ,
310312 receive_data_after_each_request = True ,
311313 check_data_received_each_request = False ,
314+ receive_data_after_fuzz = False ,
312315 log_level = logging .INFO , logfile = None , logfile_level = logging .DEBUG ,
313316 ignore_connection_reset = False ,
314317 ignore_connection_aborted = False ,
@@ -341,6 +344,7 @@ def __init__(self, session_filename=None, index_start=1, index_end=None, sleep_t
341344 self ._fuzz_data_logger = fuzz_logger .FuzzLogger (fuzz_loggers = [self ._db_logger ] + fuzz_loggers )
342345 self ._check_data_received_each_request = check_data_received_each_request
343346 self ._receive_data_after_each_request = receive_data_after_each_request
347+ self ._receive_data_after_fuzz = receive_data_after_fuzz
344348 self ._skip_current_node_after_current_test_case = False
345349 self ._skip_current_element_after_current_test_case = False
346350
@@ -794,8 +798,8 @@ def _process_failures(self, target):
794798 synopsis = "({0} reports) {1}" .format (len (crash_synopses ), "\n " .join (crash_synopses ))
795799 else :
796800 synopsis = "\n " .join (crash_synopses )
797- self .procmon_results [self .total_mutant_index ] = synopsis
798- self ._fuzz_data_logger .log_info (self . procmon_results [ self . total_mutant_index ]. split ( " \n " )[ 0 ] )
801+ self .procmon_results [self .total_mutant_index ] = crash_synopses
802+ self ._fuzz_data_logger .log_info (synopsis )
799803
800804 if self .fuzz_node .mutant is not None and \
801805 self .crashing_primitives [self .fuzz_node ] >= self ._crash_threshold_node :
@@ -1031,16 +1035,8 @@ def transmit_fuzz(self, sock, node, edge, callback_data):
10311035 .format (e .socket_errno , e .socket_errmsg ))
10321036
10331037 try : # recv
1034- if self ._receive_data_after_each_request :
1038+ if self ._receive_data_after_fuzz :
10351039 self .last_recv = self .targets [0 ].recv (10000 ) # TODO: Remove magic number (10000)
1036-
1037- if self ._check_data_received_each_request :
1038- self ._fuzz_data_logger .log_check ("Verify some data was received from the target." )
1039- if not self .last_recv :
1040- # Assume a crash?
1041- self ._fuzz_data_logger .log_fail ("Nothing received from target." )
1042- else :
1043- self ._fuzz_data_logger .log_pass ("Some data received from target." )
10441040 except sex .BoofuzzTargetConnectionReset :
10451041 if self ._check_data_received_each_request :
10461042 self ._fuzz_data_logger .log_fail ("Target connection reset." )
@@ -1455,6 +1451,6 @@ def test_case_data(self, index):
14551451 index (int): Test case index
14561452
14571453 Returns:
1458- Test case data object
1454+ DataTestCase: Test case data object
14591455 """
14601456 return self ._db_logger .get_test_case_data (index = index )
0 commit comments