aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrank Lichtenheld2024-01-29 11:53:57 +0100
committerGert Doering2024-01-29 14:23:49 +0100
commit55418bf62eaff1c4323d206181cd8a5f88e7c6c7 (patch)
treef1b2a141c075619c09022eac9727d5684bfb7c13
parentb9696ff387c1754d057a3611531b681d14de9105 (diff)
downloadopenvpn-55418bf62eaff1c4323d206181cd8a5f88e7c6c7.zip
openvpn-55418bf62eaff1c4323d206181cd8a5f88e7c6c7.tar.gz
test_user_pass: Add UTs for character filtering
For simplicity I implemented them only with the inline method, but they actually apply to all methods. Change-Id: Ie8d2d5f6f58679baaf5eb817a7e2ca1afcb8c4db Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com> Acked-by: Arne Schwabe <arne-openvpn@rfc2549.org> Acked-by: Gert Doering <gert@greenie.muc.de> Message-Id: <20240129105358.11161-1-gert@greenie.muc.de> URL: https://www.mail-archive.com/search?l=mid&q=20240129105358.11161-1-gert@greenie.muc.de Signed-off-by: Gert Doering <gert@greenie.muc.de>
-rw-r--r--tests/unit_tests/openvpn/test_user_pass.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/unit_tests/openvpn/test_user_pass.c b/tests/unit_tests/openvpn/test_user_pass.c
index ab4dfe4..277cb1d 100644
--- a/tests/unit_tests/openvpn/test_user_pass.c
+++ b/tests/unit_tests/openvpn/test_user_pass.c
@@ -141,6 +141,29 @@ test_get_user_pass_inline_creds(void **state)
reset_user_pass(&up);
+ /* Test various valid characters */
+ /*FIXME: query_user_exec() called even though nothing queued */
+ will_return(query_user_exec_builtin, true);
+ /* FIXME? content after first two lines just ignored */
+ assert_true(get_user_pass_cr(&up, "#iuser and 커뮤니티\n//ipasswörd!\nsome other content\nnot relevant", "UT", flags, NULL));
+ assert_true(up.defined);
+ assert_string_equal(up.username, "#iuser and 커뮤니티");
+ assert_string_equal(up.password, "//ipasswörd!");
+
+ reset_user_pass(&up);
+
+ /* Test various invalid characters */
+ /*FIXME: query_user_exec() called even though nothing queued */
+ will_return(query_user_exec_builtin, true);
+ /*FIXME? allows arbitrary crap if c > 127 */
+ /*FIXME? silently removes control characters */
+ assert_true(get_user_pass_cr(&up, "\tiuser\r\nipass\xffwo\x1erd", "UT", flags, NULL));
+ assert_true(up.defined);
+ assert_string_equal(up.username, "iuser");
+ assert_string_equal(up.password, "ipass\xffword");
+
+ reset_user_pass(&up);
+
expect_string(query_user_exec_builtin, query_user[i].prompt, "Enter UT Password:");
will_return(query_user_exec_builtin, "cpassword");
will_return(query_user_exec_builtin, true);