From: Timo Sirainen Date: Fri, 26 Feb 2016 13:25:27 +0000 (+0200) Subject: doveadm-log: Fixed trimming empty prefixes. X-Git-Tag: 2.2.22.rc1~51 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=96f35f249ab0d8d19c5201f6e6c850514ad36971;p=thirdparty%2Fdovecot%2Fcore.git doveadm-log: Fixed trimming empty prefixes. Too eager (long) cast removal from the original code broke it. Changed to a slightly simplified version now. --- diff --git a/src/doveadm/doveadm-log.c b/src/doveadm/doveadm-log.c index 97c17c6cec..e50898a905 100644 --- a/src/doveadm/doveadm-log.c +++ b/src/doveadm/doveadm-log.c @@ -281,19 +281,17 @@ static void cmd_log_find(int argc, char *argv[]) static const char *t_cmd_log_error_trim(const char *orig) { - /* use long in case strlen returns 0 */ - for (unsigned int pos = strlen(orig)-1; pos > 0; pos--) { - if (orig[pos] != ' ') { - if (orig[pos] != ':') { - pos++; - } - if (pos < strlen(orig)-1) { - return t_strndup(orig, pos); - } + unsigned int pos; + + /* Trim whitespace from suffix and remove ':' if it exists */ + for (pos = strlen(orig); pos > 0; pos--) { + if (orig[pos-1] != ' ') { + if (orig[pos-1] == ':') + pos--; break; } } - return orig; + return orig[pos] == '\0' ? orig : t_strndup(orig, pos); } static void cmd_log_error_write(const char *const *args, time_t min_timestamp)