From f0963ac962bc87944a71aefc468bd57bc839f160 Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan.bosch@dovecot.fi>
Date: Wed, 25 Apr 2018 14:22:37 +0200
Subject: [PATCH] global: Replace str_append_n() with str_append_data().

The str_append_n() function is now deprecated. At no occasion, the occurence of
NUL in the data is possible or relevant, so each instance is replaced with
str_append_data() rather than str_append_max().
---
 src/lib-managesieve/managesieve-quote.c                   | 2 +-
 src/lib-sieve/ext-encoded-character.c                     | 4 ++--
 src/lib-sieve/mcht-matches.c                              | 6 +++---
 src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c  | 2 +-
 src/lib-sieve/plugins/mime/cmd-extracttext.c              | 2 +-
 src/lib-sieve/plugins/notify/ext-notify-common.c          | 8 ++++----
 src/lib-sieve/plugins/regex/mcht-regex.c                  | 2 +-
 src/lib-sieve/plugins/variables/ext-variables-arguments.c | 4 ++--
 src/lib-sieve/sieve-message.c                             | 2 +-
 src/lib-sieve/storage/ldap/sieve-ldap-db.c                | 2 +-
 src/lib-sieve/util/edit-mail.c                            | 2 +-
 src/lib-sieve/util/rfc2822.c                              | 8 ++++----
 src/lib-sieve/util/test-edit-mail.c                       | 4 ++--
 src/managesieve-login/client-authenticate.c               | 2 +-
 src/testsuite/testsuite-arguments.c                       | 4 ++--
 15 files changed, 27 insertions(+), 27 deletions(-)

diff --git a/src/lib-managesieve/managesieve-quote.c b/src/lib-managesieve/managesieve-quote.c
index 6bec3527a..4e60ce472 100644
--- a/src/lib-managesieve/managesieve-quote.c
+++ b/src/lib-managesieve/managesieve-quote.c
@@ -65,7 +65,7 @@ void managesieve_quote_append(string_t *str, const unsigned char *value,
 
 	tmp = t_str_new(value_len+escape+4);
 	if (!modify && (literal || escape == 0))
-		str_append_n(tmp, value, value_len);
+		str_append_data(tmp, value, value_len);
 	else {
 		last_lwsp = TRUE;
 		for (i = 0; i < value_len; i++) {
diff --git a/src/lib-sieve/ext-encoded-character.c b/src/lib-sieve/ext-encoded-character.c
index a05060907..d9e2b1849 100644
--- a/src/lib-sieve/ext-encoded-character.c
+++ b/src/lib-sieve/ext-encoded-character.c
@@ -229,7 +229,7 @@ bool arg_encoded_string_validate
 						newstr = str_new(sieve_ast_pool((*arg)->ast), str_len(str)*2);
 					}
 
-					str_append_n(newstr, strstart, substart-strstart);
+					str_append_data(newstr, strstart, substart-strstart);
 					str_append_str(newstr, tmpstr);
 
 					strstart = p + 1;
@@ -246,7 +246,7 @@ bool arg_encoded_string_validate
 
 	if ( newstr != NULL ) {
 		if ( strstart != strend )
-			str_append_n(newstr, strstart, strend-strstart);
+			str_append_data(newstr, strstart, strend-strstart);
 
 		sieve_ast_argument_string_set(*arg, newstr);
 	}
diff --git a/src/lib-sieve/mcht-matches.c b/src/lib-sieve/mcht-matches.c
index 388a631ed..050fce9fc 100644
--- a/src/lib-sieve/mcht-matches.c
+++ b/src/lib-sieve/mcht-matches.c
@@ -213,7 +213,7 @@ static int mcht_matches_match_key
 				qp = vp - key_offset;
 
 				if ( mvalues != NULL )
-					str_append_n(mvalue, pvp, qp-pvp);
+					str_append_data(mvalue, pvp, qp-pvp);
 
 				/* Compare needle to end of value string */
 				if ( !cmp->def->char_match(cmp, &vp, vend, &needle, nend) ) {
@@ -283,7 +283,7 @@ static int mcht_matches_match_key
 					const char *qp = qend - key_offset;
 
 					/* Append '*' match value */
-					str_append_n(mvalue, pvp, qp-pvp);
+					str_append_data(mvalue, pvp, qp-pvp);
 
 					/* Append any initial '?' match values (those that caused the key
 					 * offset.
@@ -393,7 +393,7 @@ static int mcht_matches_match_key
 			/* Add the rest of the string as match value */
 			if ( mvalues != NULL ) {
 				str_truncate(mvalue, 0);
-				str_append_n(mvalue, vp, vend-vp);
+				str_append_data(mvalue, vp, vend-vp);
 				sieve_match_values_add(mvalues, mvalue);
 			}
 
diff --git a/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c b/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c
index 63778329f..3c364b83b 100644
--- a/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c
+++ b/src/lib-sieve/plugins/imap4flags/ext-imap4flags-common.c
@@ -351,7 +351,7 @@ static string_t *ext_imap4flags_iter_get_flag_str
 			if ( fp > fstart ) {
 				/* Return flag */
 				string_t *flag = t_str_new(fp-fstart+1);
-				str_append_n(flag, fstart, fp-fstart);
+				str_append_data(flag, fstart, fp-fstart);
 
 				iter->last = fstart - fbegin;
 				iter->offset = fp - fbegin;
diff --git a/src/lib-sieve/plugins/mime/cmd-extracttext.c b/src/lib-sieve/plugins/mime/cmd-extracttext.c
index 16d073778..aa537bede 100644
--- a/src/lib-sieve/plugins/mime/cmd-extracttext.c
+++ b/src/lib-sieve/plugins/mime/cmd-extracttext.c
@@ -336,7 +336,7 @@ static int cmd_extracttext_operation_execute
 		value = t_str_new_const(mpart_data.content, mpart_data.size);
 	} else {
 		value = t_str_new((size_t)first);
-		str_append_n(value, mpart_data.content, (size_t)first);
+		str_append_data(value, mpart_data.content, (size_t)first);
 	}
 
 	/* Apply modifiers */
diff --git a/src/lib-sieve/plugins/notify/ext-notify-common.c b/src/lib-sieve/plugins/notify/ext-notify-common.c
index 714ce89d3..5aefd6b59 100644
--- a/src/lib-sieve/plugins/notify/ext-notify-common.c
+++ b/src/lib-sieve/plugins/notify/ext-notify-common.c
@@ -307,7 +307,7 @@ int ext_notify_construct_message
 				}
 
 				if ( *p++ != ']' || *p++ != '$' ) {
-					str_append_n(out_msg, begin, p-begin);
+					str_append_data(out_msg, begin, p-begin);
 					valid = FALSE;
 				}
 			} else {
@@ -324,9 +324,9 @@ int ext_notify_construct_message
 				}
 
 				if ( num > 0 && num < body_size)
-					str_append_n(out_msg, body_text, num);
+					str_append_data(out_msg, body_text, num);
 				else
-					str_append_n(out_msg, body_text, body_size);
+					str_append_data(out_msg, body_text, body_size);
 			}
 		} else {
 			size_t len;
@@ -335,7 +335,7 @@ int ext_notify_construct_message
 			len = strcspn(p + 1, "$") + 1;
 
 			/* Copy normal text */
-			str_append_n(out_msg, p, len);
+			str_append_data(out_msg, p, len);
 			p += len;
 		}
   }
diff --git a/src/lib-sieve/plugins/regex/mcht-regex.c b/src/lib-sieve/plugins/regex/mcht-regex.c
index c0cf88043..f0c630efc 100644
--- a/src/lib-sieve/plugins/regex/mcht-regex.c
+++ b/src/lib-sieve/plugins/regex/mcht-regex.c
@@ -238,7 +238,7 @@ static int mcht_regex_match_key
 						skipped = 0;
 					}
 
-					str_append_n(subst, val + ctx->pmatch[i].rm_so,
+					str_append_data(subst, val + ctx->pmatch[i].rm_so,
 						ctx->pmatch[i].rm_eo - ctx->pmatch[i].rm_so);
 					sieve_match_values_add(mvalues, subst);
 				} else
diff --git a/src/lib-sieve/plugins/variables/ext-variables-arguments.c b/src/lib-sieve/plugins/variables/ext-variables-arguments.c
index 5df7af58a..2ac773c35 100644
--- a/src/lib-sieve/plugins/variables/ext-variables-arguments.c
+++ b/src/lib-sieve/plugins/variables/ext-variables-arguments.c
@@ -243,7 +243,7 @@ static bool arg_variable_string_validate
 					 */
 					if ( substart > strstart ) {
 						string_t *newstr = str_new(pool, substart - strstart);
-						str_append_n(newstr, strstart, substart - strstart);
+						str_append_data(newstr, strstart, substart - strstart);
 
 						strarg = sieve_ast_argument_string_create_raw
 							((*arg)->ast, newstr, (*arg)->source_line);
@@ -311,7 +311,7 @@ static bool arg_variable_string_validate
 	if ( strend > strstart ) {
 		struct sieve_ast_argument *strarg;
 		string_t *newstr = str_new(pool, strend - strstart);
-		str_append_n(newstr, strstart, strend - strstart);
+		str_append_data(newstr, strstart, strend - strstart);
 
 		strarg = sieve_ast_argument_string_create_raw
 			((*arg)->ast, newstr, (*arg)->source_line);
diff --git a/src/lib-sieve/sieve-message.c b/src/lib-sieve/sieve-message.c
index 63b3d3449..8a633b025 100644
--- a/src/lib-sieve/sieve-message.c
+++ b/src/lib-sieve/sieve-message.c
@@ -482,7 +482,7 @@ static inline string_t *_header_right_trim(const char *raw)
 			if ( *p != ' ' && *p != '\t' ) break;
 		}
 		result = t_str_new(p - raw + 1);
-		str_append_n(result, raw, p - raw + 1);
+		str_append_data(result, raw, p - raw + 1);
 	}
 	return result;
 }
diff --git a/src/lib-sieve/storage/ldap/sieve-ldap-db.c b/src/lib-sieve/storage/ldap/sieve-ldap-db.c
index c0a2e51a3..9d3d2081f 100644
--- a/src/lib-sieve/storage/ldap/sieve-ldap-db.c
+++ b/src/lib-sieve/storage/ldap/sieve-ldap-db.c
@@ -983,7 +983,7 @@ const char *ldap_escape(const char *str)
 		return str;
 
 	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));
 
 	for (; *p != '\0'; p++) {
 		if (IS_LDAP_ESCAPED_CHAR(*p))
diff --git a/src/lib-sieve/util/edit-mail.c b/src/lib-sieve/util/edit-mail.c
index 2f68cfab5..06ce241c7 100644
--- a/src/lib-sieve/util/edit-mail.c
+++ b/src/lib-sieve/util/edit-mail.c
@@ -438,7 +438,7 @@ static inline char *_header_value_unfold
 	}
 
 	out = t_str_new(i + strlen(value+i) + 10);
-	str_append_n(out, value, i);
+	str_append_data(out, value, i);
 	for ( ; value[i] != '\0'; i++ ) {
 		if (value[i] == '\n') {
 			i++;
diff --git a/src/lib-sieve/util/rfc2822.c b/src/lib-sieve/util/rfc2822.c
index 3db2de776..7a5abf0a4 100644
--- a/src/lib-sieve/util/rfc2822.c
+++ b/src/lib-sieve/util/rfc2822.c
@@ -133,7 +133,7 @@ unsigned int rfc2822_header_append
 	unsigned int lines = 0;
 
 	/* Write header field name first */
-	str_append_n(header, name, line_len);
+	str_append(header, name);
 	str_append(header, ": ");
 
 	if ( body_offset_r != NULL )
@@ -163,7 +163,7 @@ unsigned int rfc2822_header_append
 			while ( *bp == '\r' || *bp == '\n' )
 				bp++;
 
-			str_append_n(header, sp, nlp-sp);
+			str_append_data(header, sp, nlp-sp);
 
 			if ( crlf )
 				str_append(header, "\r\n");
@@ -180,7 +180,7 @@ unsigned int rfc2822_header_append
 			sp = bp;
 		} else {
 			/* Insert newline at last whitespace within the max_line limit */
-			str_append_n(header, sp, wp-sp);
+			str_append_data(header, sp, wp-sp);
 
 			/* Force continued line; drop any existing whitespace */
 			while ( *wp == ' ' || *wp == '\t' )
@@ -205,7 +205,7 @@ unsigned int rfc2822_header_append
 	}
 
 	if ( bp != sp || lines == 0 ) {
-		str_append_n(header, sp, bp-sp);
+		str_append_data(header, sp, bp-sp);
 		if ( crlf )
 			str_append(header, "\r\n");
 		else
diff --git a/src/lib-sieve/util/test-edit-mail.c b/src/lib-sieve/util/test-edit-mail.c
index e5f468ec4..2370ad03b 100644
--- a/src/lib-sieve/util/test-edit-mail.c
+++ b/src/lib-sieve/util/test-edit-mail.c
@@ -36,12 +36,12 @@ static void str_append_no_cr(string_t *str, const char *cstr)
 	poff = p = cstr;
 	while (*p != '\0') {
 		if (*p == '\r') {
-			str_append_n(str, poff, (p - poff));
+			str_append_data(str, poff, (p - poff));
 			poff = p+1;
 		}
 		p++;
 	}
-	str_append_n(str, poff, (p - poff));
+	str_append_data(str, poff, (p - poff));
 }
 
 static int test_init_mail_user(void)
diff --git a/src/managesieve-login/client-authenticate.c b/src/managesieve-login/client-authenticate.c
index b94480fce..1deb8646c 100644
--- a/src/managesieve-login/client-authenticate.c
+++ b/src/managesieve-login/client-authenticate.c
@@ -209,7 +209,7 @@ static int managesieve_client_auth_read_response
 			return -1;
 		}
 
-		str_append_n(client->auth_response, data, size);
+		str_append_data(client->auth_response, data, size);
 		i_stream_skip(msieve_client->auth_response_input, size);
 	}
 
diff --git a/src/testsuite/testsuite-arguments.c b/src/testsuite/testsuite-arguments.c
index b54f64251..f1e17f4df 100644
--- a/src/testsuite/testsuite-arguments.c
+++ b/src/testsuite/testsuite-arguments.c
@@ -120,7 +120,7 @@ static bool arg_testsuite_string_validate
 					 */
 					if ( substart > strstart ) {
 						string_t *newstr = str_new(pool, substart - strstart);
-						str_append_n(newstr, strstart, substart - strstart);
+						str_append_data(newstr, strstart, substart - strstart);
 
 						strarg = sieve_ast_argument_string_create_raw
 							((*arg)->ast, newstr, (*arg)->source_line);
@@ -174,7 +174,7 @@ static bool arg_testsuite_string_validate
 	if ( strend > strstart ) {
 		struct sieve_ast_argument *strarg;
 		string_t *newstr = str_new(pool, strend - strstart);
-		str_append_n(newstr, strstart, strend - strstart);
+		str_append_data(newstr, strstart, strend - strstart);
 
 		strarg = sieve_ast_argument_string_create_raw
 			((*arg)->ast, newstr, (*arg)->source_line);
-- 
GitLab