From: Zbigniew Jędrzejewski-Szmek Date: Fri, 11 Jul 2014 13:21:15 +0000 (-0400) Subject: util: fix has cc check and add test X-Git-Tag: v216~664 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=1cb1767a29458b3d16d6b161b4ee34dd496ff60d util: fix has cc check and add test --- diff --git a/src/shared/util.c b/src/shared/util.c index 33427981e..75dc58b63 100644 --- a/src/shared/util.c +++ b/src/shared/util.c @@ -5419,7 +5419,7 @@ bool string_has_cc(const char *p, const char *ok) { for (t = p; *t; t++) { if (ok && strchr(ok, *t)) - return false; + continue; if (*t > 0 && *t < ' ') return true; diff --git a/src/test/test-util.c b/src/test/test-util.c index 44921bd15..ed91a67d1 100644 --- a/src/test/test-util.c +++ b/src/test/test-util.c @@ -731,6 +731,20 @@ static void test_filename_is_safe(void) { assert_se(filename_is_safe("o.o")); } +static void test_string_has_cc(void) { + assert_se(string_has_cc("abc\1", NULL)); + assert_se(string_has_cc("abc\x7f", NULL)); + assert_se(string_has_cc("abc\x7f", NULL)); + assert_se(string_has_cc("abc\t\x7f", "\t")); + assert_se(string_has_cc("abc\t\x7f", "\t")); + assert_se(string_has_cc("\x7f", "\t")); + assert_se(string_has_cc("\x7f", "\t\a")); + + assert_se(!string_has_cc("abc\t\t", "\t")); + assert_se(!string_has_cc("abc\t\t\a", "\t\a")); + assert_se(!string_has_cc("a\ab\tc", "\t\a")); +} + static void test_ascii_strlower(void) { char a[] = "AabBcC Jk Ii Od LKJJJ kkd LK"; assert_se(streq(ascii_strlower(a), "aabbcc jk ii od lkjjj kkd lk")); @@ -937,6 +951,7 @@ int main(int argc, char *argv[]) { test_log2i(); test_foreach_string(); test_filename_is_safe(); + test_string_has_cc(); test_ascii_strlower(); test_files_same(); test_is_valid_documentation_url();