X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fbasic%2Fstring-util.c;h=9b060a9a20dbb181f715bf348c741275dff0e209;hp=6b06e643c99398f6226d788589eeb04c70854abd;hb=9270bff168ecc98d1761a32ca28b1f3906b093f2;hpb=2aebec83237867717ad3ba0096a82670d82d911a diff --git a/src/basic/string-util.c b/src/basic/string-util.c index 6b06e643c..9b060a9a2 100644 --- a/src/basic/string-util.c +++ b/src/basic/string-util.c @@ -218,7 +218,7 @@ char *strappend(const char *s, const char *suffix) { return strnappend(s, suffix, suffix ? strlen(suffix) : 0); } -char *strjoin(const char *x, ...) { +char *strjoin_real(const char *x, ...) { va_list ap; size_t l; char *r, *p; @@ -292,6 +292,7 @@ char *strstrip(char *s) { return s; } +#if 0 /// UNNEEDED by elogind char *delete_chars(char *s, const char *bad) { char *f, *t; @@ -308,6 +309,7 @@ char *delete_chars(char *s, const char *bad) { return s; } +#endif // 0 char *truncate_nl(char *s) { assert(s); @@ -316,6 +318,7 @@ char *truncate_nl(char *s) { return s; } +#if 0 /// UNNEEDED by elogind char ascii_tolower(char x) { if (x >= 'A' && x <= 'Z') @@ -406,6 +409,7 @@ bool chars_intersect(const char *a, const char *b) { return false; } +#endif // 0 bool string_has_cc(const char *p, const char *ok) { const char *t; @@ -821,6 +825,7 @@ int free_and_strdup(char **p, const char *s) { return 1; } +#if !HAVE_DECL_EXPLICIT_BZERO /* * Pointer to memset is volatile so that compiler must de-reference * the pointer and can't assume that it points to any function in @@ -831,19 +836,19 @@ typedef void *(*memset_t)(void *,int,size_t); static volatile memset_t memset_func = memset; -void* memory_erase(void *p, size_t l) { - return memset_func(p, 'x', l); +void explicit_bzero(void *p, size_t l) { + memset_func(p, '\0', l); } +#endif char* string_erase(char *x) { - if (!x) return NULL; /* A delicious drop of snake-oil! To be called on memory where * we stored passphrases or so, after we used them. */ - - return memory_erase(x, strlen(x)); + explicit_bzero(x, strlen(x)); + return x; } char *string_free_erase(char *s) {