diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2024-06-14 19:47:34 -0400 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2024-06-14 19:47:34 -0400 |
commit | 91d7f4f70583e3aab13ae503bdeda97073cedb07 (patch) | |
tree | 8572a8fa782b9601f5ecf3b464fac6211c7dc394 /src/utils.c | |
parent | 77b3517c8d6d01526a1c5be9109981ca269dd21f (diff) | |
download | ohmycal-91d7f4f70583e3aab13ae503bdeda97073cedb07.tar.gz |
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
Diffstat (limited to 'src/utils.c')
-rw-r--r-- | src/utils.c | 6 |
1 files changed, 3 insertions, 3 deletions
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; } |