@@ -44,7 +44,6 @@ std::string no_null_s;
44
44
std::string runcommand;
45
45
std::string runcommanda;
46
46
GtkWidget *caller_box;
47
- GtkTextBuffer *buffer;
48
47
GtkTextIter iter;
49
48
GtkWidget *buf_size_zero;
50
49
GtkWidget *random_buffer_size;
@@ -77,6 +76,8 @@ GtkWidget *set_run_command_a;
77
76
GtkWidget *runcoma;
78
77
std::string ver = " -i " ;
79
78
std::string ansvif_loc = " ansvif " ;
79
+ // GtkTextBuffer *buffer;
80
+ GtkWidget *buffer = gtk_entry_new();
80
81
81
82
int help_me (std::string mr_me) {
82
83
std::cout << " ansvif v" << version << " -- A Not So Very Intelligent Fuzzer"
@@ -89,7 +90,9 @@ int help_me(std::string mr_me) {
89
90
}
90
91
91
92
92
- static void destroy (GtkWidget *widget, gpointer *data) { gtk_main_quit (); }
93
+ static void destroy (GtkWidget *widget, gpointer *data) {
94
+ gtk_main_quit ();
95
+ }
93
96
94
97
std::string ansvif_str () {
95
98
ansvif_call = ansvif_loc + ver + random_data + random_buffer_s + no_null_s + buffer_size +
@@ -172,18 +175,19 @@ const char *get_user() {
172
175
}
173
176
174
177
static void fuzz_call () {
175
- /* put together the call to ansvif */
176
- int com_pid ;
177
- FILE *fp = popen2 (ansvif_str (), " r" , com_pid , get_user ());
178
+ /* put together the call to ansvif */
179
+ int ansvif_pid ;
180
+ FILE *fp = popen2 (ansvif_str (), " r" , ansvif_pid , get_user ());
178
181
char command_out[4096 ] = {0 };
179
182
std::stringstream output;
180
183
while (read (fileno (fp), command_out, sizeof (command_out) - 1 ) != 0 ) {
181
184
output << std::string (command_out);
182
- gtk_main_iteration_do (TRUE );
183
185
memset (&command_out, 0 , sizeof (command_out));
186
+ gtk_main_iteration_do (TRUE );
184
187
}
185
- gtk_text_buffer_set_text (buffer, output.str ().c_str (), -1 );
186
- pclose2 (fp, com_pid);
188
+ gtk_entry_set_text (GTK_ENTRY (buffer), output.str ().c_str ());
189
+ pclose (fp);
190
+ // execl("/bin/sh", "sh", "-c", ansvif_str().c_str(), NULL);
187
191
}
188
192
189
193
static void template_selected (GtkWidget *w, GtkFileSelection *fs) {
@@ -351,21 +355,17 @@ const void set_no_null(void*) {
351
355
}
352
356
353
357
/* Create a scrolled text area that displays a "message" */
354
- static GtkWidget *create_text (void ) {
358
+ GtkWidget *create_text (void ) {
355
359
GtkWidget *scrolled_window;
356
360
GtkWidget *view;
357
-
358
361
view = gtk_text_view_new ();
359
- buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
360
-
362
+ // buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view));
361
363
scrolled_window = gtk_scrolled_window_new (NULL , NULL );
362
364
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
363
365
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
364
-
365
366
gtk_container_add (GTK_CONTAINER (scrolled_window), view);
366
367
fuzz_call ();
367
368
gtk_widget_show_all (scrolled_window);
368
-
369
369
return (scrolled_window);
370
370
}
371
371
@@ -377,17 +377,16 @@ int main(int argc, char *argv[]) {
377
377
GtkWidget *fuzz_it;
378
378
GtkWidget *command_sel;
379
379
GtkWidget *environ_sel;
380
- GtkWidget *logging_file;
381
380
GtkWidget *template_sel;
382
381
GtkWidget *ansvif_out;
383
- GtkWidget *text;
384
382
GtkWidget *random_data_only;
385
383
GtkWidget *b_size_label;
386
384
GtkWidget *exit_code_label;
387
385
GtkWidget *max_arg_label;
388
386
GtkWidget *other_sep_label;
389
387
GtkWidget *oo_sel;
390
388
GtkWidget *log_sel;
389
+ GtkWidget *text;
391
390
gint tmp_pos;
392
391
int c;
393
392
@@ -451,7 +450,7 @@ int main(int argc, char *argv[]) {
451
450
gtk_fixed_put (GTK_FIXED (opters), b_size_label, 540 , 55 );
452
451
gtk_widget_show (b_size_label);
453
452
gtk_widget_show (set_buf_size);
454
- /* A text box where we enter the custom crashcode */
453
+ /* A text box where we enter the custom crashcode */
455
454
set_exit_code = gtk_entry_new ();
456
455
gtk_entry_set_max_length (GTK_ENTRY (set_exit_code), 3 );
457
456
gtk_widget_set_size_request (GTK_WIDGET (set_exit_code), 50 , 25 );
@@ -489,8 +488,8 @@ int main(int argc, char *argv[]) {
489
488
gtk_label_set_justify (GTK_LABEL (runcom_label), GTK_JUSTIFY_LEFT);
490
489
gtk_fixed_put (GTK_FIXED (opters), runcom_label, 540 , 175 );
491
490
gtk_widget_show (runcom_label);
492
- gtk_widget_show (set_run_command);
493
- /* Run command after */
491
+ gtk_widget_show (set_run_command);
492
+ /* Run command after */
494
493
set_run_command_a = gtk_entry_new ();
495
494
gtk_widget_set_size_request (GTK_WIDGET (set_run_command_a), 50 , 25 );
496
495
g_signal_connect (set_run_command_a, " activate" , G_CALLBACK ((gpointer)set_run_command_a_callback),
@@ -503,8 +502,7 @@ int main(int argc, char *argv[]) {
503
502
gtk_widget_show (set_run_command_a);
504
503
/* Make our template file selection */
505
504
template_sel = gtk_button_new_with_label (" Select Template" );
506
- g_signal_connect (GTK_OBJECT (template_sel), " clicked" ,
507
- G_CALLBACK ((gpointer)select_template), NULL );
505
+ g_signal_connect (GTK_OBJECT (template_sel), " clicked" , G_CALLBACK ((gpointer)select_template), template_sel);
508
506
gtk_fixed_put (GTK_FIXED (opters), template_sel, 30 , 80 );
509
507
gtk_widget_show (template_sel);
510
508
template_sel_t = gtk_entry_new ();
@@ -614,25 +612,25 @@ int main(int argc, char *argv[]) {
614
612
/* A toggle for turning buffer size 0 on and off */
615
613
buf_size_zero = gtk_check_button_new_with_label (" Buffer Size 0" );
616
614
g_signal_connect (GTK_OBJECT (buf_size_zero), " clicked" ,
617
- G_CALLBACK ((gpointer)set_buffer_size), NULL );
615
+ G_CALLBACK ((gpointer)set_buffer_size), buf_size_zero );
618
616
gtk_fixed_put (GTK_FIXED (opters), buf_size_zero, 30 , 200 );
619
617
gtk_widget_show (buf_size_zero);
620
618
/* A toggle for turning all random data on and off */
621
619
random_data_only = gtk_check_button_new_with_label (" Random Data Only" );
622
620
g_signal_connect (GTK_OBJECT (random_data_only), " clicked" ,
623
- G_CALLBACK ((gpointer)set_random_data), NULL );
621
+ G_CALLBACK ((gpointer)set_random_data), random_data_only );
624
622
gtk_fixed_put (GTK_FIXED (opters), random_data_only, 30 , 220 );
625
623
gtk_widget_show (random_data_only);
626
624
/* A toggle for turning buffer random buffer size on and off */
627
625
random_buffer_size = gtk_check_button_new_with_label (" Random Buffer Size" );
628
626
g_signal_connect (GTK_OBJECT (random_buffer_size), " clicked" ,
629
- G_CALLBACK ((gpointer)set_random_size), NULL );
627
+ G_CALLBACK ((gpointer)set_random_size), random_buffer_size );
630
628
gtk_fixed_put (GTK_FIXED (opters), random_buffer_size, 30 , 180 );
631
629
gtk_widget_show (random_buffer_size);
632
630
/* A toggle for turning non null on and off */
633
631
no_null = gtk_check_button_new_with_label (" No NULL In Fuzz" );
634
632
g_signal_connect (GTK_OBJECT (no_null), " clicked" ,
635
- G_CALLBACK ((gpointer)set_no_null), NULL );
633
+ G_CALLBACK ((gpointer)set_no_null), no_null );
636
634
gtk_fixed_put (GTK_FIXED (opters), no_null, 220 , 180 );
637
635
gtk_widget_show (no_null);
638
636
/* ansvif output goes here */
0 commit comments