From 91d7f4f70583e3aab13ae503bdeda97073cedb07 Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Fri, 14 Jun 2024 19:47:34 -0400 Subject: Fix redaction code to accept NULL pointers in array * And let the caller specify the length of the array of strings to redact. * Redactions now occur directly on authentication strings rather than their command line arguments --- src/utils.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/utils.c') diff --git a/src/utils.c b/src/utils.c index 7b77020..86622ad 100644 --- a/src/utils.c +++ b/src/utils.c @@ -707,7 +707,7 @@ char *collapse_whitespace(char **s) { * @param maxlen maximum length of dest string * @return 0 on success, -1 on error */ -int redact_sensitive(const char **to_redact, char *src, char *dest, size_t maxlen) { +int redact_sensitive(const char **to_redact, size_t to_redact_size, char *src, char *dest, size_t maxlen) { const char *redacted = "***REDACTED***"; char *tmp = calloc(strlen(redacted) + strlen(src) + 1, sizeof(*tmp)); @@ -716,8 +716,8 @@ int redact_sensitive(const char **to_redact, char *src, char *dest, size_t maxle } strcpy(tmp, src); - for (size_t i = 0; to_redact[i] != NULL; i++) { - if (strstr(tmp, to_redact[i])) { + for (size_t i = 0; i < to_redact_size; i++) { + if (to_redact[i] && strstr(tmp, to_redact[i])) { replace_text(tmp, to_redact[i], redacted, 0); break; } -- cgit