Modified:
/ChangeLog
/src/gui.c
=======================================
--- /ChangeLog Sat Mar 13 07:26:35 2010
+++ /ChangeLog Sat Mar 13 08:49:22 2010
@@ -7,6 +7,9 @@
Start work on ShuffleCrypt. More on this later. (Don't use the
functions yet!)
+ * src/gui.c:
+ Remove all calls to g_free that might cause fatal errors.
+
2010-03-02 Nightgunner5 <nightg...@llamaslayers.net>
* configure.ac, src/third-party/mt19937ar.h, build-aux/config.h.in:
=======================================
--- /src/gui.c Sat Mar 13 07:26:35 2010
+++ /src/gui.c Sat Mar 13 08:49:22 2010
@@ -39,8 +39,6 @@
step1 = GTK_WIDGET( gtk_builder_get_object( builder, "encrypt_step1" )
);
gtk_widget_show( step1 );
-
- g_free( step1 );
}
G_MODULE_EXPORT void encrypt_step1_cancel( GtkWidget* button, gpointer
data ) {
@@ -48,8 +46,6 @@
step1 = GTK_WIDGET( gtk_builder_get_object( builder, "encrypt_step1" )
);
gtk_widget_hide( step1 );
-
- g_free( step1 );
}
G_MODULE_EXPORT void encrypt_step1_ok( GtkWidget* button, gpointer data ) {
@@ -58,12 +54,8 @@
file = GTK_FILE_CHOOSER( gtk_builder_get_object(
builder, "file_e1_select" ) );
- if ( gtk_file_chooser_get_filename( file ) == NULL ) {
- g_free( file );
+ if ( gtk_file_chooser_get_filename( file ) == NULL )
return;
- }
-
- g_free( file );
// This part of the reset is here because Glade won't let me set
default values.
GtkToggleButton* sha1;
@@ -100,17 +92,6 @@
gtk_widget_set_sensitive( seed, FALSE );
gtk_range_set_value( GTK_RANGE( seed ), 20.0 );
- g_free( sha1 );
- g_free( sha224 );
- g_free( sha256 );
- g_free( sha384 );
- g_free( sha512 );
- g_free( md5 );
- g_free( cubehash );
- g_free( whirlpool );
- g_free( randomseed );
- g_free( seed );
-
// Now on to the actual displaying part.
GtkWidget* step1;
GtkWidget* step2;
@@ -120,9 +101,6 @@
gtk_widget_show( step2 );
gtk_widget_hide( step1 );
-
- g_free( step1 );
- g_free( step2 );
}
/* Password scoring method adapted from
@@ -140,8 +118,6 @@
gtk_progress_bar_set_fraction( meter, 0.0 );
gtk_progress_bar_set_text( meter, "Enter a password." );
- g_free( meter );
-
return;
}
@@ -216,8 +192,6 @@
gtk_progress_bar_set_text( meter, "Ok" );
else
gtk_progress_bar_set_text( meter, "Bad" );
-
- g_free( meter );
}
G_MODULE_EXPORT unsigned char encrypt_step2_get_algos() {
@@ -258,15 +232,6 @@
if ( gtk_toggle_button_get_active( whirlpool ) )
algos |= '\x80';
- g_free( sha1 );
- g_free( sha224 );
- g_free( sha256 );
- g_free( sha384 );
- g_free( sha512 );
- g_free( md5 );
- g_free( cubehash );
- g_free( whirlpool );
-
return algos;
}
@@ -294,9 +259,6 @@
} else {
gtk_widget_set_sensitive( seed, TRUE );
}
-
- g_free( randomseed );
- g_free( seed );
}
G_MODULE_EXPORT void encrypt_step3() {
@@ -327,10 +289,8 @@
char* filename;
filename = gtk_file_chooser_get_filename( file );
- g_free( file );
n = (int)gtk_range_get_value( seedlen );
- g_free( seedlen );
f = fopen( filename, "rb" );
@@ -338,7 +298,7 @@
i = 0;
while ( ( o = fopen( tmp, "rb" ) ) != NULL ) {
- g_free( o );
+ fclose( o );
i++;
sprintf( tmp, "%s_%lu.shacrypt", filename, i );
}
@@ -352,7 +312,6 @@
fbuf[i] = g_random_int_range( 0, 255 );
SHACrypt_Init( &s, (char*)gtk_entry_get_text( pass ),
gtk_entry_get_text_length( pass ), algos, fbuf, n );
- g_free( pass );
fwrite( identifier, 1, 3, o ); // Identifier
fwrite( "\2\0", 1, 2, o ); // Format version
@@ -380,11 +339,6 @@
fclose( f );
fclose( o );
- g_free( f );
- g_free( o );
- g_free( fbuf );
- g_free( obuf );
-
GtkEntry* pass1;
GtkEntry* pass2;
GtkProgressBar* meter;
@@ -398,15 +352,8 @@
gtk_progress_bar_set_text( meter, "Enter a password" );
gtk_progress_bar_set_fraction( meter, 0.0 );
- g_free( pass1 );
- g_free( pass2 );
- g_free( meter );
-
gtk_progress_bar_set_text( progress, "Done!" );
gtk_window_set_deletable( step3, TRUE );
-
- g_free( progress );
- g_free( step3 );
}
G_MODULE_EXPORT void encrypt_step2_ok( GtkWidget* button, gpointer data ) {
@@ -422,10 +369,6 @@
gtk_notebook_set_current_page( tabs, 0 );
gtk_widget_grab_focus( GTK_WIDGET( pass1 ) );
- g_free( pass1 );
- g_free( pass2 );
- g_free( tabs );
-
return;
}
@@ -433,14 +376,8 @@
gtk_notebook_set_current_page( tabs, 0 );
gtk_widget_grab_focus( GTK_WIDGET( pass2 ) );
- g_free( pass1 );
- g_free( pass2 );
- g_free( tabs );
-
return;
}
-
- g_free( tabs );
if ( strcmp( gtk_entry_get_text( pass1 ), gtk_entry_get_text( pass2 )
) == 0 ) {
GtkWidget* step2;
@@ -452,9 +389,6 @@
gtk_widget_show( step3 );
gtk_widget_hide( step2 );
- g_free( step2 );
- g_free( step3 );
-
g_thread_create( (GThreadFunc)encrypt_step3, NULL, FALSE, NULL );
} else {
GtkProgressBar* meter;
@@ -462,12 +396,7 @@
meter = GTK_PROGRESS_BAR( gtk_builder_get_object(
builder, "progressbar_e2_pass_strength" ) );
gtk_progress_bar_set_text( meter, "Passwords do not match!" );
-
- g_free( meter );
- }
-
- g_free( pass1 );
- g_free( pass2 );
+ }
}
G_MODULE_EXPORT void encrypt_step2_cancel( GtkWidget* button, gpointer
data ) {
@@ -487,11 +416,6 @@
gtk_entry_set_text( pass2, "" );
gtk_progress_bar_set_text( meter, "Enter a password" );
gtk_progress_bar_set_fraction( meter, 0.0 );
-
- g_free( step2 );
- g_free( pass1 );
- g_free( pass2 );
- g_free( meter );
}
/* Decryption */
@@ -500,8 +424,6 @@
step1 = GTK_WIDGET( gtk_builder_get_object( builder, "decrypt_step1" )
);
gtk_widget_show( step1 );
-
- g_free( step1 );
}
G_MODULE_EXPORT void decrypt_step1_ok( GtkWidget* button, gpointer data ) {
@@ -510,38 +432,28 @@
file = GTK_FILE_CHOOSER( gtk_builder_get_object(
builder, "file_d1_select" ) );
// Make sure there's actually a file selected.
- if ( gtk_file_chooser_get_filename( file ) == NULL ) {
- g_free( file );
+ if ( gtk_file_chooser_get_filename( file ) == NULL )
return;
- }
// Make sure it's an SHACrypt file.
FILE* f;
char fbuf[5];
f = fopen( gtk_file_chooser_get_filename( file ), "rb" );
- g_free( file );
if ( f == NULL || fread( fbuf, 1, 5, f ) != 5 )
strcpy( fbuf, "fail." ); // Make sure we have all 5 bytes set.
- if ( f != NULL ) {
+ if ( f != NULL )
fclose( f );
-
- g_free( f );
- }
if ( strncmp( fbuf, identifier, 3 ) != 0 || fbuf[3] < '\1' || fbuf[3]
> '\2' || fbuf[4] != '\0' ) {
- g_free( fbuf );
-
GtkWidget* invalid_file;
invalid_file = GTK_WIDGET( gtk_builder_get_object(
builder, "decrypt_step1_error_notshacrypt" ) );
gtk_widget_show( invalid_file );
- g_free( invalid_file );
-
return;
}
@@ -553,9 +465,6 @@
gtk_widget_show( step2 );
gtk_widget_hide( step1 );
-
- g_free( step1 );
- g_free( step2 );
}
G_MODULE_EXPORT void decrypt_step1_cancel( GtkWidget* button, gpointer
data ) {
@@ -563,8 +472,6 @@
step1 = GTK_WIDGET( gtk_builder_get_object( builder, "decrypt_step1" )
);
gtk_widget_hide( step1 );
-
- g_free( step1 );
}
G_MODULE_EXPORT void decrypt_step1_error_ok( GtkWidget* button, gpointer
data ) {
@@ -572,8 +479,6 @@
error = GTK_WIDGET( gtk_builder_get_object(
builder, "decrypt_step1_error_notshacrypt" ) );
gtk_widget_hide( error );
-
- g_free( error );
}
G_MODULE_EXPORT void decrypt_step3() {
@@ -603,8 +508,6 @@
char* filename_suffix;
char* tmp;
- g_free( file );
-
f = fopen( g_strjoinv( ".", filename ), "rb" );
i = g_strv_length( filename );
@@ -656,8 +559,6 @@
gtk_entry_set_text( pass, "" );
- g_free( pass );
-
i = ftell( f );
fseek( f, 0, SEEK_END );
size = ftell( f ) - i;
@@ -678,16 +579,8 @@
fclose( f );
fclose( o );
- g_free( f );
- g_free( o );
- g_free( fbuf );
- g_free( obuf );
-
gtk_progress_bar_set_text( progress, "Done!" );
gtk_window_set_deletable( step3, TRUE );
-
- g_free( progress );
- g_free( step3 );
}
G_MODULE_EXPORT void decrypt_step2_ok( GtkWidget* button, gpointer data ) {
@@ -698,11 +591,8 @@
if ( !gtk_entry_get_text_length( pass ) ) {
gtk_widget_grab_focus( GTK_WIDGET( pass ) );
- g_free( pass );
-
return;
}
- g_free( pass );
GtkWidget* step2;
GtkWidget* step3;
@@ -713,9 +603,6 @@
gtk_widget_show( step3 );
gtk_widget_hide( step2 );
- g_free( step2 );
- g_free( step3 );
-
g_thread_create( (GThreadFunc)decrypt_step3, NULL, FALSE, NULL );
}
@@ -728,9 +615,6 @@
gtk_widget_hide( step2 );
gtk_entry_set_text( pass, "" );
-
- g_free( step2 );
- g_free( pass );
}
/* Asymmetric */
@@ -739,8 +623,6 @@
step1 = GTK_WIDGET( gtk_builder_get_object(
builder, "asymmetric_step1" ) );
gtk_widget_show( step1 );
-
- g_free( step1 );
}
G_MODULE_EXPORT void asymmetric_step1_cancel( GtkWidget* button, gpointer
data ) {
@@ -748,8 +630,6 @@
step1 = GTK_WIDGET( gtk_builder_get_object(
builder, "asymmetric_step1" ) );
gtk_widget_hide( step1 );
-
- g_free( step1 );
}
G_MODULE_EXPORT void asymmetric_step1_ok( GtkWidget* button, gpointer data
) {
@@ -758,38 +638,29 @@
file = GTK_FILE_CHOOSER( gtk_builder_get_object(
builder, "file_a1_select" ) );
// Make sure there's actually a file selected.
- if ( gtk_file_chooser_get_filename( file ) == NULL ) {
- g_free( file );
+ if ( gtk_file_chooser_get_filename( file ) == NULL )
return;
- }
// Make sure it's an SHACrypt file.
FILE* f;
char fbuf[5];
f = fopen( gtk_file_chooser_get_filename( file ), "rb" );
- g_free( file );
if ( f == NULL || fread( fbuf, 1, 5, f ) != 5 )
strcpy( fbuf, "fail." ); // Make sure we have all 5 bytes set.
if ( f != NULL ) {
fclose( f );
-
- g_free( f );
}
if ( strncmp( fbuf, identifier, 3 ) != 0 || fbuf[3] < '\1' || fbuf[3]
> '\2' || fbuf[4] != '\0' ) {
- g_free( fbuf );
-
GtkWidget* invalid_file;
invalid_file = GTK_WIDGET( gtk_builder_get_object(
builder, "asymmetric_step1_error_notshacrypt" ) );
gtk_widget_show( invalid_file );
- g_free( invalid_file );
-
return;
}
@@ -802,9 +673,6 @@
gtk_widget_show( step2 );
gtk_widget_hide( step1 );
-
- g_free( step1 );
- g_free( step2 );
}
/* Password scoring method adapted from
@@ -822,8 +690,6 @@
gtk_progress_bar_set_fraction( meter, 0.0 );
gtk_progress_bar_set_text( meter, "Enter a password." );
- g_free( meter );
-
return;
}
@@ -898,8 +764,6 @@
gtk_progress_bar_set_text( meter, "Ok" );
else
gtk_progress_bar_set_text( meter, "Bad" );
-
- g_free( meter );
}
G_MODULE_EXPORT void asymmetric_step3() {
@@ -927,8 +791,6 @@
char* filename = gtk_file_chooser_get_filename( file );
char* tmp;
- g_free( file );
-
f = fopen( filename, "rb" );
filename = g_strndup( filename, strlen( filename ) - 9 );
@@ -970,8 +832,6 @@
gtk_entry_set_text( pass, "" );
- g_free( pass );
-
i = ftell( f );
fseek( f, 0, SEEK_END );
size = ftell( f ) - i;
@@ -992,21 +852,13 @@
fclose( f );
fclose( o );
- g_free( f );
- g_free( o );
- g_free( fbuf );
- g_free( obuf );
-
gtk_progress_bar_set_text( progress, "Done!" );
gtk_window_set_deletable( step3, TRUE );
-
- g_free( progress );
- g_free( step3 );
}
G_MODULE_EXPORT void asymmetric_step2_ok( GtkWidget* button, gpointer data
) {
- GtkEntry* pass1;
- GtkEntry* pass2;
+ GtkEntry* pass1;
+ GtkEntry* pass2;
pass1 = GTK_ENTRY( gtk_builder_get_object(
builder, "field_a2_password1" ) );
pass2 = GTK_ENTRY( gtk_builder_get_object(
builder, "field_a2_password2" ) );
@@ -1014,18 +866,12 @@
if ( !gtk_entry_get_text_length( pass1 ) ) {
gtk_widget_grab_focus( GTK_WIDGET( pass1 ) );
- g_free( pass1 );
- g_free( pass2 );
-
return;
}
if ( !gtk_entry_get_text_length( pass2 ) ) {
gtk_widget_grab_focus( GTK_WIDGET( pass2 ) );
- g_free( pass1 );
- g_free( pass2 );
-
return;
}
@@ -1036,12 +882,6 @@
step2 = GTK_WIDGET( gtk_builder_get_object(
builder, "asymmetric_step2" ) );
step3 = GTK_WIDGET( gtk_builder_get_object(
builder, "asymmetric_step3" ) );
- gtk_widget_show( step3 );
- gtk_widget_hide( step2 );
-
- g_free( step2 );
- g_free( step3 );
-
g_thread_create( (GThreadFunc)asymmetric_step3, NULL, FALSE, NULL
);
} else {
GtkProgressBar* meter;
@@ -1049,12 +889,7 @@
meter = GTK_PROGRESS_BAR( gtk_builder_get_object(
builder, "progressbar_a2_pass_strength" ) );
gtk_progress_bar_set_text( meter, "Passwords do not match!" );
-
- g_free( meter );
- }
-
- g_free( pass1 );
- g_free( pass2 );
+ }
}
G_MODULE_EXPORT void asymmetric_step2_cancel( GtkWidget* button, gpointer
data ) {
@@ -1074,11 +909,6 @@
gtk_entry_set_text( pass2, "" );
gtk_progress_bar_set_text( meter, "Enter a password" );
gtk_progress_bar_set_fraction( meter, 0.0 );
-
- g_free( step2 );
- g_free( pass1 );
- g_free( pass2 );
- g_free( meter );
}
int main( int argc, char** argv ) {
@@ -1111,55 +941,42 @@
tempwindow = GTK_WINDOW( gtk_builder_get_object(
builder, "encrypt_step1" ) );
gtk_window_set_icon( tempwindow, icon );
- g_free( tempwindow );
tempwindow = GTK_WINDOW( gtk_builder_get_object(
builder, "encrypt_step2" ) );
gtk_window_set_icon( tempwindow, icon );
- g_free( tempwindow );
tempwindow = GTK_WINDOW( gtk_builder_get_object(
builder, "encrypt_step3" ) );
gtk_window_set_icon( tempwindow, icon );
- g_free( tempwindow );
tempwindow = GTK_WINDOW( gtk_builder_get_object(
builder, "decrypt_step1" ) );
gtk_window_set_icon( tempwindow, icon );
- g_free( tempwindow );
tempwindow = GTK_WINDOW( gtk_builder_get_object(
builder, "decrypt_step2" ) );
gtk_window_set_icon( tempwindow, icon );
- g_free( tempwindow );
tempwindow = GTK_WINDOW( gtk_builder_get_object(
builder, "decrypt_step3" ) );
gtk_window_set_icon( tempwindow, icon );
- g_free( tempwindow );
tempwindow = GTK_WINDOW( gtk_builder_get_object(
builder, "asymmetric_step1" ) );
gtk_window_set_icon( tempwindow, icon );
- g_free( tempwindow );
tempwindow = GTK_WINDOW( gtk_builder_get_object(
builder, "asymmetric_step2" ) );
gtk_window_set_icon( tempwindow, icon );
- g_free( tempwindow );
tempwindow = GTK_WINDOW( gtk_builder_get_object(
builder, "asymmetric_step3" ) );
gtk_window_set_icon( tempwindow, icon );
- g_free( tempwindow );
tempwindow = GTK_WINDOW( gtk_builder_get_object(
builder, "decrypt_step1_error_notshacrypt" ) );
gtk_window_set_icon( tempwindow, icon );
- g_free( tempwindow );
tempwindow = GTK_WINDOW( gtk_builder_get_object(
builder, "asymmetric_step1_error_notshacrypt" ) );
gtk_window_set_icon( tempwindow, icon );
- g_free( tempwindow );
GtkFileFilter* shacrypt_mask;
shacrypt_mask = GTK_FILE_FILTER( gtk_builder_get_object(
builder, "filter_shacrypt_ext" ) );
gtk_file_filter_add_pattern( shacrypt_mask, "*.shacrypt" );
- g_free( shacrypt_mask );
-
gtk_widget_show( window );
gtk_main();