diff options
author | Lennart Poettering <lennart@poettering.net> | 2015-10-26 21:26:33 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2015-10-27 13:25:56 +0100 |
commit | f3e2e81d5385b9ffd84ed110d00eb347ec0e14f1 (patch) | |
tree | 522c2ad74abd4d6ac5eee6640fe1a31c4f0b42c8 /src/basic | |
parent | f4f15635ec05293ffcc83a5b39f624bbabbd8fd0 (diff) |
util: move string_is_safe() to string-util.[ch]
Diffstat (limited to 'src/basic')
-rw-r--r-- | src/basic/string-util.c | 17 | ||||
-rw-r--r-- | src/basic/string-util.h | 2 | ||||
-rw-r--r-- | src/basic/util.c | 17 | ||||
-rw-r--r-- | src/basic/util.h | 2 |
4 files changed, 19 insertions, 19 deletions
diff --git a/src/basic/string-util.c b/src/basic/string-util.c index a7cf4e8520..a1781c505a 100644 --- a/src/basic/string-util.c +++ b/src/basic/string-util.c @@ -765,3 +765,20 @@ char *string_free_erase(char *s) { string_erase(s); return mfree(s); } + +bool string_is_safe(const char *p) { + const char *t; + + if (!p) + return false; + + for (t = p; *t; t++) { + if (*t > 0 && *t < ' ') /* no control characters */ + return false; + + if (strchr(QUOTES "\\\x7f", *t)) + return false; + } + + return true; +} diff --git a/src/basic/string-util.h b/src/basic/string-util.h index 7b7c0e5f32..297b8f8232 100644 --- a/src/basic/string-util.h +++ b/src/basic/string-util.h @@ -168,3 +168,5 @@ void string_erase(char *x); char *string_free_erase(char *s); DEFINE_TRIVIAL_CLEANUP_FUNC(char *, string_free_erase); #define _cleanup_string_free_erase_ _cleanup_(string_free_erasep) + +bool string_is_safe(const char *p) _pure_; diff --git a/src/basic/util.c b/src/basic/util.c index 92ce009620..b85e3c020a 100644 --- a/src/basic/util.c +++ b/src/basic/util.c @@ -886,23 +886,6 @@ bool in_initrd(void) { return saved; } -bool string_is_safe(const char *p) { - const char *t; - - if (!p) - return false; - - for (t = p; *t; t++) { - if (*t > 0 && *t < ' ') - return false; - - if (strchr("\\\"\'\x7f", *t)) - return false; - } - - return true; -} - /* hey glibc, APIs with callbacks without a user pointer are so useless */ void *xbsearch_r(const void *key, const void *base, size_t nmemb, size_t size, int (*compar) (const void *, const void *, void *), void *arg) { diff --git a/src/basic/util.h b/src/basic/util.h index 7608e49689..c268c6d0c3 100644 --- a/src/basic/util.h +++ b/src/basic/util.h @@ -262,8 +262,6 @@ _alloc_(2, 3) static inline void *memdup_multiply(const void *p, size_t a, size_ return memdup(p, a * b); } -bool string_is_safe(const char *p) _pure_; - /** * Check if a string contains any glob patterns. */ |