From 1cb1767a29458b3d16d6b161b4ee34dd496ff60d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Fri, 11 Jul 2014 09:21:15 -0400 Subject: [PATCH] util: fix has cc check and add test --- src/shared/util.c | 2 +- src/test/test-util.c | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) 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(); -- 2.30.2