diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2024-04-15 13:33:36 -0400 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2024-04-15 13:33:36 -0400 |
commit | cabcd35daa18bb883f0d348b2adf93c5828af69f (patch) | |
tree | a8a1c2e5142662244fcab2e928754dc48db05e4b /src/utils.c | |
parent | 208962dfdbd24788a6decf1839ecbbf584fb2e09 (diff) | |
download | stasis-cabcd35daa18bb883f0d348b2adf93c5828af69f.tar.gz |
Move artifactory authentication redaction code into its own function: redact_sensitive()
Diffstat (limited to 'src/utils.c')
-rw-r--r-- | src/utils.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/utils.c b/src/utils.c index d24e32d..d41400e 100644 --- a/src/utils.c +++ b/src/utils.c @@ -686,3 +686,31 @@ char *collapse_whitespace(char **s) { return *s; } + +int redact_sensitive(const char **to_redact, char *src, char *dest, size_t maxlen) { + char **parts = split(src, " ", 0); + if (!parts) { + fprintf(stderr, "Unable to split source string\n"); + return -1; + } + + for (size_t i = 0; to_redact[i] != NULL; i++) { + for (size_t p = 0; parts[p] != NULL; p++) { + if (strstr(parts[p], to_redact[i])) { + replace_text(parts[p], to_redact[i], "***REDACTED***", REPLACE_TRUNCATE_AFTER_MATCH); + } + } + } + + char *dest_tmp = join(parts, " "); + if (!dest_tmp) { + fprintf(stderr, "Unable to join message array\n"); + return -1; + } + strncpy(dest, dest_tmp, maxlen); + + GENERIC_ARRAY_FREE(parts); + guard_free(dest_tmp); + return 0; +} + |