From: Timo Sirainen Date: Sat, 21 Apr 2018 12:24:28 +0000 (+0300) Subject: global: Replace str_append_n() with str_append_data() wherever possible X-Git-Tag: 2.3.4~250 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5b426a25f3cf94beeb2ceadde08f0d05dd124258;p=thirdparty%2Fdovecot%2Fcore.git global: Replace str_append_n() with str_append_data() wherever possible It shouldn't be possible for input to have NULs in any of these places. This makes the extra NUL-check in str_append_n() unnecessary. --- diff --git a/src/auth/auth-cache.c b/src/auth/auth-cache.c index 70ca4a8793..6d096c1847 100644 --- a/src/auth/auth-cache.c +++ b/src/auth/auth-cache.c @@ -57,7 +57,7 @@ auth_cache_key_add_var(string_t *str, const char *data, unsigned int len) str_append_c(str, data[0]); else { str_append_c(str, '{'); - str_append_n(str, data, len); + str_append_data(str, data, len); str_append_c(str, '}'); } } diff --git a/src/auth/db-dict-cache-key.c b/src/auth/db-dict-cache-key.c index f2bda35c3d..1af6b0804f 100644 --- a/src/auth/db-dict-cache-key.c +++ b/src/auth/db-dict-cache-key.c @@ -53,7 +53,7 @@ db_dict_parse_cache_key(const ARRAY_TYPE(db_dict_key) *keys, str_printfa(str, "\t%%%c", p[0]); } else { str_append(str, "\t%{"); - str_append_n(str, p, size); + str_append_data(str, p, size); str_append_c(str, '}'); } p += size; diff --git a/src/auth/db-ldap.c b/src/auth/db-ldap.c index f62512d871..7a41b6758f 100644 --- a/src/auth/db-ldap.c +++ b/src/auth/db-ldap.c @@ -1496,7 +1496,7 @@ const char *ldap_escape(const char *str, if (IS_LDAP_ESCAPED_CHAR(*p)) { if (ret == NULL) { ret = t_str_new((size_t) (p - str) + 64); - str_append_n(ret, str, (size_t) (p - str)); + str_append_data(ret, str, (size_t) (p - str)); } str_printfa(ret, "\\%02X", (unsigned char)*p); } else if (ret != NULL) diff --git a/src/auth/password-scheme-md5crypt.c b/src/auth/password-scheme-md5crypt.c index 065286acf1..a75e3b2566 100644 --- a/src/auth/password-scheme-md5crypt.c +++ b/src/auth/password-scheme-md5crypt.c @@ -103,7 +103,7 @@ const char *password_generate_md5_crypt(const char *pw, const char *salt) /* Now make the output string */ passwd = t_str_new(sl + 64); str_append(passwd, magic); - str_append_n(passwd, sp, sl); + str_append_data(passwd, sp, sl); str_append_c(passwd, '$'); md5_final(&ctx,final); diff --git a/src/config/config-parser.c b/src/config/config-parser.c index a4898fb449..0519644d91 100644 --- a/src/config/config-parser.c +++ b/src/config/config-parser.c @@ -77,7 +77,7 @@ static int config_add_type(struct setting_parser_context *parser, str = t_str_new(256); p = strchr(line, '='); - str_append_n(str, line, p-line); + str_append_data(str, line, p-line); str_append_c(str, SETTINGS_SEPARATOR); str_append(str, p+1); if (info != NULL) { @@ -631,7 +631,7 @@ config_parse_line(struct config_parser_context *ctx, len--; } if(len >= 1) { - str_append_n(full_line, line, len); + str_append_data(full_line, line, len); str_append_c(full_line, ' '); } return CONFIG_LINE_TYPE_CONTINUE; diff --git a/src/config/doveconf.c b/src/config/doveconf.c index 2b4a2766b7..c597e85aaf 100644 --- a/src/config/doveconf.c +++ b/src/config/doveconf.c @@ -426,7 +426,7 @@ config_dump_human_output(struct config_dump_human_context *ctx, str_append_n(ctx->list_prefix, indent_str, indent*2); p = strchr(key2, '/'); if (p != NULL) - str_append_n(ctx->list_prefix, key2, p - key2); + str_append_data(ctx->list_prefix, key2, p - key2); else str_append(ctx->list_prefix, key2); if (unique_key && *value != '\0') { diff --git a/src/lib-dict-backend/dict-ldap.c b/src/lib-dict-backend/dict-ldap.c index 87415941d6..f504833f1c 100644 --- a/src/lib-dict-backend/dict-ldap.c +++ b/src/lib-dict-backend/dict-ldap.c @@ -179,7 +179,7 @@ static const char *ldap_escape(const char *str) if (IS_LDAP_ESCAPED_CHAR(*p)) { if (ret == NULL) { ret = t_str_new((size_t) (p - str) + 64); - str_append_n(ret, str, (size_t) (p - str)); + str_append_data(ret, str, (size_t) (p - str)); } str_printfa(ret, "\\%02X", (unsigned char)*p); } else if (ret != NULL) diff --git a/src/lib-dict/dict.c b/src/lib-dict/dict.c index 40f55aaa55..99f986491f 100644 --- a/src/lib-dict/dict.c +++ b/src/lib-dict/dict.c @@ -370,7 +370,7 @@ const char *dict_escape_string(const char *str) /* escape */ ret = t_str_new((size_t) (p - str) + 128); - str_append_n(ret, str, (size_t) (p - str)); + str_append_data(ret, str, (size_t) (p - str)); for (; *p != '\0'; p++) { switch (*p) { @@ -406,7 +406,7 @@ const char *dict_unescape_string(const char *str) /* unescape */ ret = t_str_new((size_t) (p - str) + strlen(p) + 1); - str_append_n(ret, str, (size_t) (p - str)); + str_append_data(ret, str, (size_t) (p - str)); for (; *p != '\0'; p++) { if (*p != '\\') diff --git a/src/lib-fs/fs-posix.c b/src/lib-fs/fs-posix.c index 8b916359a1..20531db156 100644 --- a/src/lib-fs/fs-posix.c +++ b/src/lib-fs/fs-posix.c @@ -252,7 +252,7 @@ static int fs_posix_create(struct posix_fs_file *file) i_assert(file->temp_path == NULL); if ((slash = strrchr(file->full_path, '/')) != NULL) { - str_append_n(str, file->full_path, slash - file->full_path); + str_append_data(str, file->full_path, slash - file->full_path); if (fs_posix_get_mode(fs, str_c(str), &mode) < 0) return -1; str_append_c(str, '/'); diff --git a/src/lib-fs/fs-sis.c b/src/lib-fs/fs-sis.c index db88234600..cb4931ec32 100644 --- a/src/lib-fs/fs-sis.c +++ b/src/lib-fs/fs-sis.c @@ -208,8 +208,8 @@ static void fs_sis_replace_hash_file(struct sis_fs_file *file) if (hash_fname == NULL) hash_fname = file->hash_path; else { - str_append_n(temp_path, file->hash_path, - (hash_fname-file->hash_path) + 1); + str_append_data(temp_path, file->hash_path, + (hash_fname-file->hash_path) + 1); hash_fname++; } str_printfa(temp_path, "%s%s.tmp", diff --git a/src/lib-fts/fts-tokenizer-address.c b/src/lib-fts/fts-tokenizer-address.c index 8cf690a349..59b73244d4 100644 --- a/src/lib-fts/fts-tokenizer-address.c +++ b/src/lib-fts/fts-tokenizer-address.c @@ -157,14 +157,14 @@ fts_tokenizer_email_address_parse_local(struct email_address_fts_tokenizer *tok, } /* localpart and @ */ if (seen_at && (pos > 1 || str_len(tok->last_word) > 0)) { - str_append_n(tok->last_word, data, pos); + str_append_data(tok->last_word, data, pos); *skip_r = pos; return EMAIL_ADDRESS_PARSER_STATE_DOMAIN; } /* localpart, @ not included yet */ if (pos > 0 && (IS_ATEXT(data[pos-1]) || data[pos-1] == '.')) { - str_append_n(tok->last_word, data, pos); + str_append_data(tok->last_word, data, pos); *skip_r = pos; return EMAIL_ADDRESS_PARSER_STATE_LOCALPART; } @@ -195,12 +195,12 @@ fts_tokenizer_email_address_parse_domain(struct email_address_fts_tokenizer *tok /* A complete domain name */ if ((pos > 0 && pos < size) || /* non-atext after atext in this data*/ (pos < size && !domain_is_empty(tok))) { /* non-atext after previous atext */ - str_append_n(tok->last_word, data, pos); + str_append_data(tok->last_word, data, pos); *skip_r = pos; return EMAIL_ADDRESS_PARSER_STATE_COMPLETE; } if (pos == size) { /* All good, but possibly not complete. */ - str_append_n(tok->last_word, data, pos); + str_append_data(tok->last_word, data, pos); *skip_r = pos; return EMAIL_ADDRESS_PARSER_STATE_DOMAIN; } diff --git a/src/lib-http/http-auth.c b/src/lib-http/http-auth.c index 01d8d2a866..9809106760 100644 --- a/src/lib-http/http-auth.c +++ b/src/lib-http/http-auth.c @@ -255,13 +255,13 @@ http_auth_create_param(string_t *out, const struct http_auth_param *param) p = first = param->value; while (*p != '\0') { if (*p == '\\' || *p == '"') { - str_append_n(out, first, p-first); + str_append_data(out, first, p-first); str_append_c(out, '\\'); first = p; } p++; } - str_append_n(out, first, p-first); + str_append_data(out, first, p-first); str_append_c(out, '"'); } else { str_append(out, param->value); diff --git a/src/lib-http/http-header-parser.c b/src/lib-http/http-header-parser.c index f2e6a46a17..430a530937 100644 --- a/src/lib-http/http-header-parser.c +++ b/src/lib-http/http-header-parser.c @@ -98,7 +98,7 @@ static int http_header_parse_name(struct http_header_parser *parser) while (parser->cur < parser->end && http_char_is_token(*parser->cur)) parser->cur++; - str_append_n(parser->name, first, parser->cur-first); + str_append_data(parser->name, first, parser->cur-first); if (parser->cur == parser->end) return 0; diff --git a/src/lib-http/http-parser.c b/src/lib-http/http-parser.c index 538e66d3c4..7cd6c2a595 100644 --- a/src/lib-http/http-parser.c +++ b/src/lib-http/http-parser.c @@ -172,7 +172,7 @@ int http_parse_quoted_string(struct http_parser *parser, const char **str_r) if (parser->cur >= parser->end) return -1; - str_append_n(str, first, parser->cur - first); + str_append_data(str, first, parser->cur - first); /* DQUOTE */ if (*parser->cur == '"') { diff --git a/src/lib-http/http-url.c b/src/lib-http/http-url.c index 92be838acc..6815f2fcd0 100644 --- a/src/lib-http/http-url.c +++ b/src/lib-http/http-url.c @@ -270,7 +270,7 @@ static bool http_url_do_parse(struct http_url_parser *url_parser) } if (url != NULL && pend > pbegin) - str_append_n(fullpath, pbegin, pend-pbegin); + str_append_data(fullpath, pbegin, pend-pbegin); } /* append relative path */ diff --git a/src/lib-imap/imap-quote.c b/src/lib-imap/imap-quote.c index a903bc6d36..c86114e8f2 100644 --- a/src/lib-imap/imap-quote.c +++ b/src/lib-imap/imap-quote.c @@ -197,7 +197,7 @@ void imap_append_string_for_humans(string_t *dest, /* fast path: we can simply write it as quoted string without any escaping */ str_append_c(dest, '"'); - str_append_n(dest, src, size); + str_append_data(dest, src, size); str_append_c(dest, '"'); return; } diff --git a/src/lib-imap/imap-url.c b/src/lib-imap/imap-url.c index 294450f010..a456e38e0d 100644 --- a/src/lib-imap/imap-url.c +++ b/src/lib-imap/imap-url.c @@ -499,7 +499,7 @@ imap_url_parse_path(struct imap_url_parser *url_parser, if (p[-1] == '/') section_endslash = TRUE; if (section == NULL) section = t_str_new(256); - str_append_n(section, base->section, p-base->section); + str_append_data(section, base->section, p-base->section); } } /* /;UID= */ @@ -524,8 +524,8 @@ imap_url_parse_path(struct imap_url_parser *url_parser, if (--rel <= 0 && p > base->mailbox) { if (p[-1] == '/') mailbox_endslash = TRUE; - str_append_n(mailbox, base->mailbox, - p - base->mailbox); + str_append_data(mailbox, base->mailbox, + p - base->mailbox); } } } diff --git a/src/lib-imap/imap-utf7.c b/src/lib-imap/imap-utf7.c index 4ce0170ec2..f46eca1c26 100644 --- a/src/lib-imap/imap-utf7.c +++ b/src/lib-imap/imap-utf7.c @@ -81,7 +81,7 @@ int imap_utf8_to_utf7(const char *src, string_t *dest) } /* at least one encoded character */ - str_append_n(dest, src, p-src); + str_append_data(dest, src, p-src); utf16 = t_malloc0(MALLOC_MULTIPLY(strlen(p), 2)); while (*p != '\0') { if (*p == '&') { @@ -265,7 +265,7 @@ int imap_utf7_to_utf8(const char *src, string_t *dest) } /* at least one encoded character */ - str_append_n(dest, src, p-src); + str_append_data(dest, src, p-src); while (*p != '\0') { if (*p == '&') { if (*++p == '-') { diff --git a/src/lib-mail/message-header-parser.c b/src/lib-mail/message-header-parser.c index 97d4205241..654a9f8f8a 100644 --- a/src/lib-mail/message-header-parser.c +++ b/src/lib-mail/message-header-parser.c @@ -323,7 +323,7 @@ int message_parse_header_next(struct message_header_parser_ctx *ctx, with use_full_value */ line->middle = msg + colon_pos; line->middle_len = (size_t)(line->value - line->middle); - str_append_n(ctx->name, line->middle, line->middle_len); + str_append_data(ctx->name, line->middle, line->middle_len); line->name = str_c(ctx->name); line->name_len = colon_pos; diff --git a/src/lib-mail/message-snippet.c b/src/lib-mail/message-snippet.c index 012d82ced5..a2f9070eb5 100644 --- a/src/lib-mail/message-snippet.c +++ b/src/lib-mail/message-snippet.c @@ -84,7 +84,7 @@ static bool snippet_generate(struct snippet_context *ctx, ctx->chars_left--; count = uni_utf8_char_bytes(data[i]); i_assert(i + count <= size); - str_append_n(ctx->snippet, data + i, count); + str_append_data(ctx->snippet, data + i, count); break; case SNIPPET_STATE_QUOTED: if (data[i] == '\n') diff --git a/src/lib-mail/rfc822-parser.c b/src/lib-mail/rfc822-parser.c index b8508ffbcb..ed24a60663 100644 --- a/src/lib-mail/rfc822-parser.c +++ b/src/lib-mail/rfc822-parser.c @@ -168,11 +168,11 @@ int rfc822_parse_atom(struct rfc822_parser_context *ctx, string_t *str) if (IS_ATEXT(*ctx->data)) continue; - str_append_n(str, start, ctx->data - start); + str_append_data(str, start, ctx->data - start); return rfc822_skip_lwsp(ctx); } - str_append_n(str, start, ctx->data - start); + str_append_data(str, start, ctx->data - start); return 0; } @@ -199,7 +199,7 @@ int rfc822_parse_dot_atom(struct rfc822_parser_context *ctx, string_t *str) continue; } - str_append_n(str, start, ctx->data - start); + str_append_data(str, start, ctx->data - start); if ((ret = rfc822_skip_lwsp(ctx)) <= 0) return ret; @@ -215,7 +215,7 @@ int rfc822_parse_dot_atom(struct rfc822_parser_context *ctx, string_t *str) start = ctx->data; } - str_append_n(str, start, ctx->data - start); + str_append_data(str, start, ctx->data - start); return 0; } @@ -227,11 +227,11 @@ int rfc822_parse_mime_token(struct rfc822_parser_context *ctx, string_t *str) if (IS_ATEXT_NON_TSPECIAL(*ctx->data) || *ctx->data == '.') continue; - str_append_n(str, start, ctx->data - start); + str_append_data(str, start, ctx->data - start); return rfc822_skip_lwsp(ctx); } - str_append_n(str, start, ctx->data - start); + str_append_data(str, start, ctx->data - start); return 0; } @@ -304,11 +304,11 @@ rfc822_parse_atom_or_dot(struct rfc822_parser_context *ctx, string_t *str) if (IS_ATEXT(*ctx->data) || *ctx->data == '.') continue; - str_append_n(str, start, ctx->data - start); + str_append_data(str, start, ctx->data - start); return rfc822_skip_lwsp(ctx); } - str_append_n(str, start, ctx->data - start); + str_append_data(str, start, ctx->data - start); return 0; } diff --git a/src/lib-mail/test-istream-dot.c b/src/lib-mail/test-istream-dot.c index 42702cba34..ed4e07b5b2 100644 --- a/src/lib-mail/test-istream-dot.c +++ b/src/lib-mail/test-istream-dot.c @@ -68,7 +68,7 @@ static void test_istream_dot_one(const struct dot_test *test, test_assert(ret > 0); data = i_stream_get_data(input, &size); - str_append_n(str, data, size); + str_append_data(str, data, size); i_stream_skip(input, size); } } @@ -91,7 +91,7 @@ static void test_istream_dot_one(const struct dot_test *test, data = i_stream_get_data(input, &size); if (size > 0) - str_append_n(str, data, size); + str_append_data(str, data, size); } test_assert(input->stream_errno == 0); test_assert(str_len(str) == output_len); diff --git a/src/lib-mail/test-istream-header-filter.c b/src/lib-mail/test-istream-header-filter.c index c4db34d81a..1c20e11142 100644 --- a/src/lib-mail/test-istream-header-filter.c +++ b/src/lib-mail/test-istream-header-filter.c @@ -243,7 +243,7 @@ static void test_istream_filter_large_buffer(void) break; if (ret == -2) { data = i_stream_get_data(filter, &size); - str_append_n(output, data, size); + str_append_data(output, data, size); i_stream_skip(filter, size); } } @@ -252,7 +252,7 @@ static void test_istream_filter_large_buffer(void) data = i_stream_get_data(filter, &size); test_assert(size <= 8192); - str_append_n(output, data, size); + str_append_data(output, data, size); p = strstr(str_c(input), "To: "); i_assert(p != NULL); @@ -311,7 +311,7 @@ static void test_istream_filter_large_buffer2(void) for (i = 0; i < 2; i++) { while ((ret = i_stream_read_more(filter, &data, &size)) > 0) { - str_append_n(output, data, size); + str_append_data(output, data, size); i_stream_skip(filter, size); } test_assert(ret == -1); @@ -473,7 +473,7 @@ static void test_istream_end_body_with_lf(void) data = i_stream_get_data(filter, &size); if (size > 0) - str_append_n(str, data, size); + str_append_data(str, data, size); i_stream_skip(filter, size); } test_istream_set_size(istream, input_len); @@ -482,7 +482,7 @@ static void test_istream_end_body_with_lf(void) test_assert(i_stream_read(filter) == -1); data = i_stream_get_data(filter, &size); - str_append_n(str, data, size); + str_append_data(str, data, size); test_assert(strcmp(str_c(str), output) == 0); i_stream_unref(&filter); diff --git a/src/lib-mail/test-istream-qp-decoder.c b/src/lib-mail/test-istream-qp-decoder.c index d14feec65a..7879825648 100644 --- a/src/lib-mail/test-istream-qp-decoder.c +++ b/src/lib-mail/test-istream-qp-decoder.c @@ -40,7 +40,7 @@ decode_test(const char *qp_input, const char *output, int stream_errno, for (i = 1; i <= qp_input_len; i++) { test_istream_set_size(input_data, i); while ((ret = i_stream_read_more(input, &data, &size)) > 0) { - str_append_n(str, data, size); + str_append_data(str, data, size); i_stream_skip(input, size); } if (ret == -1 && stream_errno != 0) @@ -50,7 +50,7 @@ decode_test(const char *qp_input, const char *output, int stream_errno, if (ret == 0) { test_istream_set_allow_eof(input_data, TRUE); while ((ret = i_stream_read_more(input, &data, &size)) > 0) { - str_append_n(str, data, size); + str_append_data(str, data, size); i_stream_skip(input, size); } } diff --git a/src/lib-mail/test-istream-qp-encoder.c b/src/lib-mail/test-istream-qp-encoder.c index effffb47f0..fb4e5fa77c 100644 --- a/src/lib-mail/test-istream-qp-encoder.c +++ b/src/lib-mail/test-istream-qp-encoder.c @@ -84,7 +84,7 @@ encode_test(const char *qp_input, const char *output, int stream_errno, for (i = 1; i <= qp_input_len; i++) { test_istream_set_size(input_data, i); while ((ret = i_stream_read_more(input, &data, &size)) > 0) { - str_append_n(str, data, size); + str_append_data(str, data, size); i_stream_skip(input, size); } if (ret == -1 && stream_errno != 0) @@ -94,7 +94,7 @@ encode_test(const char *qp_input, const char *output, int stream_errno, if (ret == 0) { test_istream_set_allow_eof(input_data, TRUE); while ((ret = i_stream_read_more(input, &data, &size)) > 0) { - str_append_n(str, data, size); + str_append_data(str, data, size); i_stream_skip(input, size); } } diff --git a/src/lib-mail/test-message-header-parser.c b/src/lib-mail/test-message-header-parser.c index 0869b64d33..8603e937cc 100644 --- a/src/lib-mail/test-message-header-parser.c +++ b/src/lib-mail/test-message-header-parser.c @@ -155,9 +155,9 @@ static void hdr_write(string_t *str, struct message_header_line *hdr) if (!hdr->continued) { str_append(str, hdr->name); if (hdr->middle_len > 0) - str_append_n(str, hdr->middle, hdr->middle_len); + str_append_data(str, hdr->middle, hdr->middle_len); } - str_append_n(str, hdr->value, hdr->value_len); + str_append_data(str, hdr->value, hdr->value_len); if (!hdr->no_newline) { if (hdr->crlf_newline) str_append_c(str, '\r'); diff --git a/src/lib-mail/test-message-parser.c b/src/lib-mail/test-message-parser.c index bdfb6ea127..373ff01eb0 100644 --- a/src/lib-mail/test-message-parser.c +++ b/src/lib-mail/test-message-parser.c @@ -119,7 +119,7 @@ static void test_message_parser_small_blocks(void) if (block.hdr != NULL) message_header_line_write(output, block.hdr); else if (block.size > 0) - str_append_n(output, block.data, block.size); + str_append_data(output, block.data, block.size); } test_assert(ret < 0); diff --git a/src/lib-settings/settings-parser.c b/src/lib-settings/settings-parser.c index 9980e223df..460ffe1e5e 100644 --- a/src/lib-settings/settings-parser.c +++ b/src/lib-settings/settings-parser.c @@ -2200,7 +2200,7 @@ const char *settings_section_escape(const char *name) return name; str = t_str_new(i + strlen(name+i) + 8); - str_append_n(str, name, i); + str_append_data(str, name, i); for (; name[i] != '\0'; i++) { switch (name[i]) { case '=': diff --git a/src/lib-settings/settings.c b/src/lib-settings/settings.c index d93bea1474..731d2a9606 100644 --- a/src/lib-settings/settings.c +++ b/src/lib-settings/settings.c @@ -250,7 +250,7 @@ prevfile: len--; while (IS_WHITE(line[len-1])) len--; - str_append_n(full_line, line, len); + str_append_data(full_line, line, len); str_append_c(full_line, ' '); continue; } diff --git a/src/lib-smtp/smtp-address.c b/src/lib-smtp/smtp-address.c index 293f7e520a..bb31d34a67 100644 --- a/src/lib-smtp/smtp-address.c +++ b/src/lib-smtp/smtp-address.c @@ -523,7 +523,7 @@ void smtp_address_write(string_t *out, str_insert(out, begin, "\""); } - str_append_n(out, pblock, p - pblock); + str_append_data(out, pblock, p - pblock); if (p >= pend) break; diff --git a/src/lib-smtp/smtp-parser.c b/src/lib-smtp/smtp-parser.c index 1dad0689f3..8bddc9944e 100644 --- a/src/lib-smtp/smtp-parser.c +++ b/src/lib-smtp/smtp-parser.c @@ -156,7 +156,7 @@ smtp_parser_parse_ldh_str(struct smtp_parser *parser, parser->cur = palnum+1; if (out != NULL) - str_append_n(out, pbegin, parser->cur - pbegin); + str_append_data(out, pbegin, parser->cur - pbegin); return 1; } @@ -250,7 +250,7 @@ smtp_parser_parse_snum(struct smtp_parser *parser, string_t *literal, } while (*parser->cur >= '0' && *parser->cur <= '9'); if (literal != NULL) - str_append_n(literal, pbegin, parser->cur - pbegin); + str_append_data(literal, pbegin, parser->cur - pbegin); *octet_r = octet; return 1; } @@ -377,7 +377,7 @@ int smtp_parser_parse_address_literal(struct smtp_parser *parser, return -1; } if (value_r != NULL) - str_append_n(value, pblock, parser->cur - pblock); + str_append_data(value, pblock, parser->cur - pblock); if (ipv6) { i_zero(&ip6); @@ -446,7 +446,7 @@ int smtp_parser_parse_quoted_string(struct smtp_parser *parser, } if (value_r != NULL) - str_append_n(value, pbegin, parser->cur - pbegin); + str_append_data(value, pbegin, parser->cur - pbegin); if (parser->cur >= parser->end || *parser->cur != '\\') break; @@ -563,7 +563,7 @@ int smtp_parser_parse_xtext(struct smtp_parser *parser, parser->cur++; if (out != NULL) - str_append_n(out, pbegin, parser->cur - pbegin); + str_append_data(out, pbegin, parser->cur - pbegin); if (parser->cur >= parser->end || *parser->cur != '+') break; diff --git a/src/lib-smtp/smtp-reply-parser.c b/src/lib-smtp/smtp-reply-parser.c index 06c379011e..7d086c2810 100644 --- a/src/lib-smtp/smtp-reply-parser.c +++ b/src/lib-smtp/smtp-reply-parser.c @@ -166,7 +166,7 @@ static int smtp_reply_parse_code if (str_len(parser->strbuf) + (parser->cur-first) > 3) return -1; - str_append_n(parser->strbuf, first, parser->cur - first); + str_append_data(parser->strbuf, first, parser->cur - first); if (parser->cur == parser->end) return 0; if (str_len(parser->strbuf) != 3) @@ -195,7 +195,7 @@ static int smtp_reply_parse_textstring(struct smtp_reply_parser *parser) return -1; } - str_append_n(parser->strbuf, first, parser->cur - first); + str_append_data(parser->strbuf, first, parser->cur - first); if (parser->cur == parser->end) return 0; return 1; @@ -217,7 +217,7 @@ static int smtp_reply_parse_ehlo_domain(struct smtp_reply_parser *parser) "Reply exceeds size limit"); return -1; } - str_append_n(parser->strbuf, first, parser->cur - first); + str_append_data(parser->strbuf, first, parser->cur - first); if (parser->cur == parser->end) return 0; return 1; @@ -249,7 +249,7 @@ static int smtp_reply_parse_ehlo_greet(struct smtp_reply_parser *parser) } /* sanitize bad characters */ - str_append_n(parser->strbuf, + str_append_data(parser->strbuf, first, parser->cur - first); if (parser->cur == parser->end) diff --git a/src/lib-smtp/smtp-server-reply.c b/src/lib-smtp/smtp-server-reply.c index 2ad013ca0c..d5c4e0c658 100644 --- a/src/lib-smtp/smtp-server-reply.c +++ b/src/lib-smtp/smtp-server-reply.c @@ -196,9 +196,9 @@ void smtp_server_reply_add_text(struct smtp_server_reply *reply, text = NULL; } else { if (p > text && *(p-1) == '\r') - str_append_n(textbuf, text, p - text - 1); + str_append_data(textbuf, text, p - text - 1); else - str_append_n(textbuf, text, p - text); + str_append_data(textbuf, text, p - text); text = p + 1; } str_append(textbuf, "\r\n"); @@ -382,7 +382,7 @@ const char *smtp_server_reply_get_one_line(struct smtp_server_reply *reply) for (;;) { p = strchr(text, '\n'); i_assert(p != NULL && p > text && *(p-1) == '\r'); - str_append_n(str, text, p - text - 1); + str_append_data(str, text, p - text - 1); line_len = (size_t)(p - text) + 1; i_assert(text_len >= line_len); text_len -= line_len; diff --git a/src/lib-smtp/smtp-syntax.c b/src/lib-smtp/smtp-syntax.c index d3f0ca8a9a..9088184d85 100644 --- a/src/lib-smtp/smtp-syntax.c +++ b/src/lib-smtp/smtp-syntax.c @@ -58,7 +58,7 @@ void smtp_string_write(string_t *out, const char *value) str_insert(out, begin, "\""); } - str_append_n(out, pblock, p-pblock); + str_append_data(out, pblock, p-pblock); if (p >= pend) break; @@ -129,7 +129,7 @@ void smtp_xtext_encode(string_t *out, const unsigned char *data, while (p < pend && smtp_char_is_xtext(*p)) p++; - str_append_n(out, pbegin, p-pbegin); + str_append_data(out, pbegin, p-pbegin); if (p >= pend) break; diff --git a/src/lib-storage/index/index-mail-headers.c b/src/lib-storage/index/index-mail-headers.c index a9653646b6..e51aa43ad3 100644 --- a/src/lib-storage/index/index-mail-headers.c +++ b/src/lib-storage/index/index-mail-headers.c @@ -340,7 +340,7 @@ void index_mail_parse_header(struct message_part *part, data->parse_line.start_pos = str_len(mail->header_data); data->parse_line.line_num = data->parse_line_num; str_append(mail->header_data, hdr->name); - str_append_n(mail->header_data, hdr->middle, hdr->middle_len); + str_append_data(mail->header_data, hdr->middle, hdr->middle_len); /* remember that we saw this header so we don't add it to cache as nonexistent. */ diff --git a/src/lib-storage/index/maildir/maildir-uidlist.c b/src/lib-storage/index/maildir/maildir-uidlist.c index a767884938..eb9d97222b 100644 --- a/src/lib-storage/index/maildir/maildir-uidlist.c +++ b/src/lib-storage/index/maildir/maildir-uidlist.c @@ -1291,7 +1291,7 @@ static int maildir_uidlist_write_fd(struct maildir_uidlist *uidlist, int fd, i_assert(MAILDIR_UIDLIST_REC_EXT_KEY_IS_VALID(*p)); len = strlen((const char *)p); str_append_c(str, ' '); - str_append_n(str, p, len); + str_append_data(str, p, len); p += len + 1; } } @@ -1300,7 +1300,7 @@ static int maildir_uidlist_write_fd(struct maildir_uidlist *uidlist, int fd, if (strp == NULL) str_append(str, rec->filename); else - str_append_n(str, rec->filename, strp - rec->filename); + str_append_data(str, rec->filename, strp - rec->filename); str_append_c(str, '\n'); o_stream_nsend(output, str_data(str), str_len(str)); } diff --git a/src/lib-storage/index/mbox/mbox-save.c b/src/lib-storage/index/mbox/mbox-save.c index a683544525..f5f45f88d9 100644 --- a/src/lib-storage/index/mbox/mbox-save.c +++ b/src/lib-storage/index/mbox/mbox-save.c @@ -263,7 +263,7 @@ mbox_save_append_keyword_headers(struct mbox_save_context *ctx, } memset(space, ' ', sizeof(space)); - str_append_n(ctx->headers, space, sizeof(space)); + str_append_data(ctx->headers, space, sizeof(space)); ctx->space_end_idx = str_len(ctx->headers); str_append_c(ctx->headers, '\n'); } diff --git a/src/lib-storage/index/mbox/mbox-sync-parse.c b/src/lib-storage/index/mbox/mbox-sync-parse.c index 8b7d2a6904..7257b0d885 100644 --- a/src/lib-storage/index/mbox/mbox-sync-parse.c +++ b/src/lib-storage/index/mbox/mbox-sync-parse.c @@ -284,8 +284,8 @@ static bool parse_x_keywords_real(struct mbox_sync_mail_context *ctx, } str_truncate(keyword, 0); - str_append_n(keyword, hdr->full_value + keyword_start, - pos - keyword_start); + str_append_data(keyword, hdr->full_value + keyword_start, + pos - keyword_start); if (!mail_index_keyword_lookup(box->index, str_c(keyword), &idx)) { /* keyword wasn't found. that means the sent mail @@ -488,7 +488,7 @@ int mbox_sync_parse_next_mail(struct istream *input, if (!hdr->continued) { line_start_pos = str_len(ctx->header); str_append(ctx->header, hdr->name); - str_append_n(ctx->header, hdr->middle, hdr->middle_len); + str_append_data(ctx->header, hdr->middle, hdr->middle_len); } func = bsearch(hdr->name, header_funcs, diff --git a/src/lib-storage/mailbox-attribute.c b/src/lib-storage/mailbox-attribute.c index 43467b9816..04bbbee750 100644 --- a/src/lib-storage/mailbox-attribute.c +++ b/src/lib-storage/mailbox-attribute.c @@ -253,7 +253,7 @@ int mailbox_attribute_value_to_string(struct mail_storage *storage, "Attribute string value has NULs"); return -1; } - str_append_n(str, data, size); + str_append_data(str, data, size); i_stream_skip(value->value_stream, size); } if (value->value_stream->stream_errno != 0) { diff --git a/src/lib-storage/mailbox-list.c b/src/lib-storage/mailbox-list.c index f482dab14e..37aac98104 100644 --- a/src/lib-storage/mailbox-list.c +++ b/src/lib-storage/mailbox-list.c @@ -483,7 +483,7 @@ mailbox_list_escape_name_params(const char *vname, const char *ns_prefix, /* no escaping of namespace prefix */ if (str_begins(vname, ns_prefix)) { - str_append_n(escaped_name, vname, ns_prefix_len); + str_append_data(escaped_name, vname, ns_prefix_len); vname += ns_prefix_len; } @@ -658,7 +658,7 @@ mailbox_list_unescape_name_params(const char *src, const char *ns_prefix, unsigned int num; if (str_begins(src, ns_prefix)) { - str_append_n(dest, src, ns_prefix_len); + str_append_data(dest, src, ns_prefix_len); src += ns_prefix_len; } diff --git a/src/lib-storage/mailbox-tree.c b/src/lib-storage/mailbox-tree.c index 457f58c181..bd76d2c1d3 100644 --- a/src/lib-storage/mailbox-tree.c +++ b/src/lib-storage/mailbox-tree.c @@ -104,7 +104,7 @@ mailbox_tree_traverse(struct mailbox_tree_context *tree, const char *path, continue; str_truncate(str, 0); - str_append_n(str, name, (size_t) (path - name)); + str_append_data(str, name, (size_t) (path - name)); name = str_c(str); /* find the node */ diff --git a/src/lib/failures.c b/src/lib/failures.c index 078b0ed015..f8a8364e18 100644 --- a/src/lib/failures.c +++ b/src/lib/failures.c @@ -613,7 +613,7 @@ static int internal_send_split(string_t *full_str, size_t prefix_len) size_t max_text_len, pos = prefix_len; str = t_str_new(PIPE_BUF); - str_append_n(str, str_c(full_str), prefix_len); + str_append_data(str, str_data(full_str), prefix_len); max_text_len = PIPE_BUF - prefix_len - 1; while (pos < str_len(full_str)) { diff --git a/src/lib/file-dotlock.c b/src/lib/file-dotlock.c index ec71b56faa..4be06c4328 100644 --- a/src/lib/file-dotlock.c +++ b/src/lib/file-dotlock.c @@ -333,16 +333,16 @@ static int try_create_lock_hardlink(struct lock_info *lock_info, bool write_pid, if (temp_prefix != NULL) { if (*temp_prefix != '/' && p != NULL) { /* add directory */ - str_append_n(tmp_path, lock_info->lock_path, - p - lock_info->lock_path); + str_append_data(tmp_path, lock_info->lock_path, + p - lock_info->lock_path); str_append_c(tmp_path, '/'); } str_append(tmp_path, temp_prefix); } else { if (p != NULL) { /* add directory */ - str_append_n(tmp_path, lock_info->lock_path, - p - lock_info->lock_path); + str_append_data(tmp_path, lock_info->lock_path, + p - lock_info->lock_path); str_append_c(tmp_path, '/'); } str_printfa(tmp_path, ".temp.%s.%s.", diff --git a/src/lib/istream.c b/src/lib/istream.c index 0a8f3fd064..d3333f9f94 100644 --- a/src/lib/istream.c +++ b/src/lib/istream.c @@ -577,8 +577,8 @@ static char *i_stream_next_line_finish(struct istream_private *stream, size_t i) if (stream->line_str == NULL) stream->line_str = str_new(default_pool, 256); str_truncate(stream->line_str, 0); - str_append_n(stream->line_str, stream->buffer + stream->skip, - end - stream->skip); + str_append_data(stream->line_str, stream->buffer + stream->skip, + end - stream->skip); ret = str_c_modifiable(stream->line_str); } diff --git a/src/lib/str-sanitize.c b/src/lib/str-sanitize.c index 15eb7035e0..183ab081f1 100644 --- a/src/lib/str-sanitize.c +++ b/src/lib/str-sanitize.c @@ -85,7 +85,7 @@ void str_sanitize_append(string_t *dest, const char *src, size_t max_bytes) if ((unsigned char)src[i] < 32) str_append_c(dest, '?'); else - str_append_n(dest, src+i, len); + str_append_data(dest, src+i, len); i += len; } @@ -125,7 +125,7 @@ void str_sanitize_append_utf8(string_t *dest, const char *src, if ((unsigned char)src[i] < 32) str_append(dest, UNICODE_REPLACEMENT_CHAR_UTF8); else - str_append_n(dest, src+i, len); + str_append_data(dest, src+i, len); i += len; c++; } diff --git a/src/lib/strescape.c b/src/lib/strescape.c index 9af20ddba1..f32285b6b8 100644 --- a/src/lib/strescape.c +++ b/src/lib/strescape.c @@ -145,7 +145,7 @@ const char *str_tabescape(const char *str) for (p = str; *p != '\0'; p++) { if (*p <= '\r') { tmp = t_str_new(128); - str_append_n(tmp, str, p-str); + str_append_data(tmp, str, p-str); str_append_tabescaped(tmp, p); return str_c(tmp); } diff --git a/src/lib/test-path-util.c b/src/lib/test-path-util.c index c89a9e1c88..c5d4122146 100644 --- a/src/lib/test-path-util.c +++ b/src/lib/test-path-util.c @@ -222,7 +222,7 @@ static void test_link_alloc2(void) memset(buf, 'x', sizeof(buf)); for (size_t i = 1; i <= sizeof(buf); i++) { str_truncate(basedir, base_len); - str_append_n(basedir, buf, i); + str_append_data(basedir, buf, i); tmpdir = str_c(basedir); (void)mkdir(str_c(basedir), 0700); diff --git a/src/lib/uri-util.c b/src/lib/uri-util.c index 978b122cf6..4699e081ec 100644 --- a/src/lib/uri-util.c +++ b/src/lib/uri-util.c @@ -518,7 +518,7 @@ static int uri_do_parse_host_name(struct uri_parser *parser, break; if (host_name != NULL) { if (offset > part) - str_append_n(host_name, part, offset - part); + str_append_data(host_name, part, offset - part); str_append_c(host_name, ch); } part = parser->cur; @@ -538,7 +538,7 @@ static int uri_do_parse_host_name(struct uri_parser *parser, } if (host_name != NULL && parser->cur > part) - str_append_n(host_name, part, parser->cur - part); + str_append_data(host_name, part, parser->cur - part); /* "." */ if (parser->cur >= parser->end || ch != '.') @@ -609,7 +609,7 @@ uri_parse_ip_literal(struct uri_parser *parser, string_t *literal, } if (literal != NULL) - str_append_n(literal, parser->cur, p-parser->cur+1); + str_append_data(literal, parser->cur, p-parser->cur+1); address = t_strdup_until(parser->cur+1, p); parser->cur = p + 1; @@ -1196,7 +1196,7 @@ void uri_data_encode(string_t *out, if ((*p & 0x80) != 0 || (esc_table[*p] & esc_mask) == 0 || (esc_extra != NULL && strchr(esc_extra, (char)*p) != NULL)) { if ((p - pbegin) > 0) - str_append_n(out, pbegin, p - pbegin); + str_append_data(out, pbegin, p - pbegin); str_printfa(out, "%%%02x", *p); p++; pbegin = p; @@ -1205,7 +1205,7 @@ void uri_data_encode(string_t *out, } } if ((p - pbegin) > 0) - str_append_n(out, pbegin, p - pbegin); + str_append_data(out, pbegin, p - pbegin); } void uri_append_scheme(string_t *out, const char *scheme) diff --git a/src/plugins/fts-solr/fts-backend-solr-old.c b/src/plugins/fts-solr/fts-backend-solr-old.c index 3fe496cef1..9b412f4cbd 100644 --- a/src/plugins/fts-solr/fts-backend-solr-old.c +++ b/src/plugins/fts-solr/fts-backend-solr-old.c @@ -94,10 +94,10 @@ xml_encode_data(string_t *dest, const unsigned char *data, size_t len) unsigned int char_len = uni_utf8_get_char_n(data + i, len - i, &chr); if (char_len > 0 && is_valid_xml_char(chr)) - str_append_n(dest, data + i, char_len); + str_append_data(dest, data + i, char_len); else { - str_append_n(dest, utf8_replacement_char, - UTF8_REPLACEMENT_CHAR_LEN); + str_append_data(dest, utf8_replacement_char, + UTF8_REPLACEMENT_CHAR_LEN); } i += char_len - 1; } else { diff --git a/src/plugins/fts-solr/fts-backend-solr.c b/src/plugins/fts-solr/fts-backend-solr.c index 033cb80071..95f41f0867 100644 --- a/src/plugins/fts-solr/fts-backend-solr.c +++ b/src/plugins/fts-solr/fts-backend-solr.c @@ -120,10 +120,10 @@ xml_encode_data_max(string_t *dest, const unsigned char *data, size_t len, unsigned int char_len = uni_utf8_get_char_n(data + i, len - i, &chr); if (char_len > 0 && is_valid_xml_char(chr)) - str_append_n(dest, data + i, char_len); + str_append_data(dest, data + i, char_len); else { - str_append_n(dest, utf8_replacement_char, - UTF8_REPLACEMENT_CHAR_LEN); + str_append_data(dest, utf8_replacement_char, + UTF8_REPLACEMENT_CHAR_LEN); } i += char_len - 1; } else {