diff --git a/src/openvpn/buffer.c b/src/openvpn/buffer.c index 24f1ef26..0b94a528 100644 --- a/src/openvpn/buffer.c +++ b/src/openvpn/buffer.c @@ -1150,26 +1150,6 @@ string_replace_leading(char *str, const char match, const char replace) } } -#ifdef CHARACTER_CLASS_DEBUG - -#define CC_INCLUDE (CC_PRINT) -#define CC_EXCLUDE (0) -#define CC_REPLACE ('.') - -void -character_class_debug(void) -{ - char buf[256]; - - while (fgets(buf, sizeof(buf), stdin) != NULL) - { - string_mod(buf, CC_INCLUDE, CC_EXCLUDE, CC_REPLACE); - printf("%s", buf); - } -} - -#endif - #ifdef VERIFY_ALIGNMENT void valign4(const struct buffer *buf, const char *file, const int line) diff --git a/src/openvpn/buffer.h b/src/openvpn/buffer.h index 4cc79507..0456b276 100644 --- a/src/openvpn/buffer.h +++ b/src/openvpn/buffer.h @@ -896,8 +896,6 @@ int buf_substring_len(const struct buffer *buf, int delim); */ const char *np(const char *str); -/*#define CHARACTER_CLASS_DEBUG*/ - /* character classes */ #define CC_ANY (1<<0) @@ -961,11 +959,6 @@ strprefix(const char *str, const char *prefix) } -#ifdef CHARACTER_CLASS_DEBUG -void character_class_debug(void); - -#endif - /* * Verify that a pointer is correctly aligned */ diff --git a/src/openvpn/init.c b/src/openvpn/init.c index abba7481..ca42c926 100644 --- a/src/openvpn/init.c +++ b/src/openvpn/init.c @@ -875,11 +875,6 @@ init_static(void) return false; #endif -#ifdef CHARACTER_CLASS_DEBUG - character_class_debug(); - return false; -#endif - #ifdef TIME_TEST time_test(); return false; diff --git a/tests/unit_tests/openvpn/test_buffer.c b/tests/unit_tests/openvpn/test_buffer.c index 8232f927..f9948125 100644 --- a/tests/unit_tests/openvpn/test_buffer.c +++ b/tests/unit_tests/openvpn/test_buffer.c @@ -319,6 +319,30 @@ test_buffer_gc_realloc(void **state) gc_free(&gc); } +static void +test_character_class(void **state) +{ + char buf[256]; + strcpy(buf, "There is \x01 a nice 1234 year old tr\x7f ee!"); + string_mod(buf, CC_PRINT, 0, '@'); + assert_string_equal(buf, "There is @ a nice 1234 year old tr@ ee!"); + + strcpy(buf, "There is \x01 a nice 1234 year old tr\x7f ee!"); + string_mod(buf, CC_PRINT, CC_DIGIT, '@'); + assert_string_equal(buf, "There is @ a nice @@@@ year old tr@ ee!"); + + strcpy(buf, "There is \x01 a nice 1234 year old tr\x7f ee!"); + string_mod(buf, CC_ALPHA, CC_DIGIT, '.'); + assert_string_equal(buf, "There.is...a.nice......year.old.tr..ee."); + + strcpy(buf, "There is \x01 a 'nice' \"1234\"\n year old \ntr\x7f ee!"); + string_mod(buf, CC_ALPHA|CC_DIGIT|CC_NEWLINE|CC_SINGLE_QUOTE, CC_DOUBLE_QUOTE|CC_BLANK, '.'); + assert_string_equal(buf, "There.is...a.'nice'..1234.\n.year.old.\ntr..ee."); + + strcpy(buf, "There is a \\'nice\\' \"1234\" [*] year old \ntree!"); + string_mod(buf, CC_PRINT, CC_BACKSLASH|CC_ASTERISK, '.'); + assert_string_equal(buf, "There is a .'nice.' \"1234\" [.] year old .tree!"); +} int main(void) @@ -351,6 +375,7 @@ main(void) cmocka_unit_test(test_buffer_free_gc_one), cmocka_unit_test(test_buffer_free_gc_two), cmocka_unit_test(test_buffer_gc_realloc), + cmocka_unit_test(test_character_class), }; return cmocka_run_group_tests_name("buffer", tests, NULL, NULL);