func: static int stonesoup_ev_handler(struct mg_connection *conn, enum mg_event ev) char * ifmatch_header ; char * stonesoup_tainted_buff ; int buffer_size = 1000 ; if ( ev == MG_REQUEST )  ifmatch_header = ( char * ) mg_get_header ( conn , "if-match" ); if ( strcmp ( ifmatch_header , "weak_taint_source_value" ) == 0 )  while ( 1 )  stonesoup_tainted_buff = ( char * ) malloc ( buffer_size * sizeof ( char ) ); data_size = mg_get_var ( conn , "data" , stonesoup_tainted_buff , buffer_size * sizeof ( char ) ); if ( data_size < buffer_size )  buffer_size = buffer_size * 2; stonesoup_handle_taint ( stonesoup_tainted_buff ); void stonesoup_handle_taint(char *nonsabbatic_acmic) int stonesoup_child_pids_count = 21 ; pid_t stonesoup_child_pids [ 21 ] ; int stonesoup_algorithms_count = 7 ; struct pid_fd stonesoup_fd_array [ 21 ] ; int stonesoup_error = 0 ; if ( nonsabbatic_acmic != 0 )  for (stonesoup_ii = 0; stonesoup_ii < stonesoup_child_pids_count; ++stonesoup_ii) stonesoup_child_pids [ stonesoup_ii ] = - 1; if ( ! stonesoup_error )  for (stonesoup_ii = 0; stonesoup_ii < 3; ++stonesoup_ii) for (stonesoup_jj = 0; stonesoup_jj < stonesoup_algorithms_count; ++stonesoup_jj) stonesoup_index = stonesoup_jj + stonesoup_ii * stonesoup_algorithms_count; if ( pipe ( stonesoup_fd_array [ stonesoup_index ] . fd_array ) == - 1 )  stonesoup_child_pid = fork ( ); if ( stonesoup_child_pid >= 0 )  if ( stonesoup_child_pid == 0 )  close ( stonesoup_fd_array [ stonesoup_index ] . fd_array [ 0 ] ); stonesoup_fd_array [ stonesoup_index ] . pid = stonesoup_child_pid; 