diff --git a/Makefile b/Makefile index e082293..0c038bb 100644 --- a/Makefile +++ b/Makefile @@ -61,5 +61,4 @@ tst-cpp: ${OBJ_TST_CPP_FILES} .PHONY: valgrind valgrind: -# valgrind --suppressions=suppressions.valgrind --leak-check=full ./main - valgrind --leak-check=full --show-leak-kinds=all ./main + valgrind --suppressions=etc/suppressions.valgrind --max-stackframe=3145776 --leak-check=full ./main diff --git a/etc/suppressions.valgrind b/etc/suppressions.valgrind new file mode 100644 index 0000000..d639baf --- /dev/null +++ b/etc/suppressions.valgrind @@ -0,0 +1,379 @@ +{ + + Memcheck:Addr8 + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr8 + fun:printf + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr4 + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr8 + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr8 + fun:_Z19read_file_to_bufferPKcPPhb + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr8 + fun:_Z19read_file_to_bufferPKcPPhb + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr8 + fun:memcpy@@GLIBC_2.14 + fun:_Z19read_file_to_bufferPKcPPhb + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr2 + fun:memcpy@@GLIBC_2.14 + fun:_Z19read_file_to_bufferPKcPPhb + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr8 + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr8 + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr1 + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr8 + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr1 + fun:_Z13base64_to_hexPKhiPh + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr1 + fun:_Z13base64_to_hexPKhiPh + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr1 + fun:_Z13base64_to_hexPKhiPh + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr1 + fun:_Z13base64_to_hexPKhiPh + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr1 + fun:_Z13base64_to_hexPKhiPh + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr1 + fun:_Z13base64_to_hexPKhiPh + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr1 + fun:_Z13base64_to_hexPKhiPh + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr8 + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr8 + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr1 + fun:_Z21convert_hex_to_stringPKhjPc + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr1 + fun:_IO_default_xsputn + fun:vfprintf + fun:vsprintf + fun:sprintf + fun:_Z21convert_hex_to_stringPKhjPc + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr1 + fun:vsprintf + fun:sprintf + fun:_Z21convert_hex_to_stringPKhjPc + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr1 + fun:_IO_default_xsputn + fun:_IO_padn + fun:vfprintf + fun:vsprintf + fun:sprintf + fun:_Z21convert_hex_to_stringPKhjPc + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr8 + fun:memset + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr1 + fun:strlen + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr1 + fun:strlen + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr1 + fun:strlen + fun:_Z17crack_repeted_xorPKcPhjj + fun:_Z17find_best_keysizePKcjii + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr1 + fun:strlen + fun:_Z17crack_repeted_xorPKcPhjj + fun:_Z17find_best_keysizePKcjii + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr1 + fun:strlen + fun:_Z17crack_repeted_xorPKcPhjj + fun:_Z17find_best_keysizePKcjii + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr1 + fun:strlen + fun:_Z17crack_repeted_xorPKcPhjj + fun:_Z17find_best_keysizePKcjii + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr1 + fun:_Z21convert_string_to_hexPKcjPh + fun:_Z17crack_repeted_xorPKcPhjj + fun:_Z17find_best_keysizePKcjii + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr1 + fun:_Z21convert_string_to_hexPKcjPh + fun:_Z17crack_repeted_xorPKcPhjj + fun:_Z17find_best_keysizePKcjii + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr4 + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr4 + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr4 + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr1 + fun:strlen + fun:_Z17crack_repeted_xorPKcPhjj + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr1 + fun:strlen + fun:_Z17crack_repeted_xorPKcPhjj + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr1 + fun:strlen + fun:_Z17crack_repeted_xorPKcPhjj + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr1 + fun:strlen + fun:_Z17crack_repeted_xorPKcPhjj + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr1 + fun:_Z21convert_string_to_hexPKcjPh + fun:_Z17crack_repeted_xorPKcPhjj + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr1 + fun:_Z21convert_string_to_hexPKcjPh + fun:_Z17crack_repeted_xorPKcPhjj + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr1 + fun:_Z14xor_repeatedlyPKhjS0_jPh + fun:_Z17crack_repeted_xorPKcPhjj + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} +{ + + Memcheck:Addr4 + fun:_Z21set1_challenge_6_testv + fun:_ZN4SET13runEv + fun:main +} diff --git a/sol/set1.cpp b/sol/set1.cpp index 4961232..217f58e 100644 --- a/sol/set1.cpp +++ b/sol/set1.cpp @@ -71,7 +71,7 @@ TCASE_E TCASE(set1_challange4_test) { - FILE* fp; + FILE* fp = NULL; char* line=NULL; size_t len=0; int line_nb = 0; @@ -82,7 +82,7 @@ TCASE(set1_challange4_test) if(fp==NULL) { fprintf(stderr, SET1_T4_INPUT_FILE " not found"); - return; + goto end; } while( getline(&line, &len, fp) != -1 ) @@ -119,6 +119,8 @@ TCASE(set1_challange4_test) free(line); line=0; len=0; } +end: + fclose(fp); free(line); } TCASE_E diff --git a/src/common.c b/src/common.c index b84229b..7fc291c 100644 --- a/src/common.c +++ b/src/common.c @@ -57,11 +57,11 @@ unsigned long read_file_to_buffer( const char* const filepath, memcpy((*obuff)+total_len, line, len); total_len+=len; - if(line!=NULL) - free(line); + free(line); line=NULL; len=0; } + free(line); end: fclose(fh); diff --git a/src/common.h b/src/common.h index a737fa2..ee4a8cd 100644 --- a/src/common.h +++ b/src/common.h @@ -9,7 +9,7 @@ // Functions for logging start/stop of the test cases #define TCASE(x) void x() { printf("Entering %s\n", __func__); -#define TCASE_E /*printf("Test done\n");*/ } +#define TCASE_E } // When iFlag is false then function logs an error and halts program void __CheckFunc__(bool iFlag, const char* const file, int line, const uint8_t* const msg = NULL );