[dovecot-cvs] dovecot/src/lib temp-string.c,1.7,1.8 temp-string.h,1.3,1.4

cras at procontrol.fi cras at procontrol.fi
Fri Dec 20 06:43:13 EET 2002


Update of /home/cvs/dovecot/src/lib
In directory danu:/tmp/cvs-serv8286/src/lib

Modified Files:
	temp-string.c temp-string.h 
Log Message:
t_string_append_n() should specify the maximum length for given string,
which may be shorter than that.



Index: temp-string.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib/temp-string.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- temp-string.c	18 Dec 2002 15:15:41 -0000	1.7
+++ temp-string.c	20 Dec 2002 04:43:11 -0000	1.8
@@ -85,17 +85,23 @@
 /* Append string/character */
 void t_string_append(TempString *tstr, const char *str)
 {
-	t_string_append_n(tstr, str, strlen(str));
+	t_string_append_n(tstr, str, SSIZE_T_MAX-1);
 }
 
-void t_string_append_n(TempString *tstr, const char *str, size_t size)
+void t_string_append_n(TempString *tstr, const char *str, size_t max_len)
 {
-	i_assert(size < SSIZE_T_MAX);
+	size_t len;
 
-	t_string_inc(tstr, size);
-	memcpy(tstr->str + tstr->len, str, size);
+	i_assert(max_len < SSIZE_T_MAX);
 
-	tstr->len += size;
+	len = 0;
+	while (len < max_len && str[len] != '\0')
+		len++;
+
+	t_string_inc(tstr, len);
+	memcpy(tstr->str + tstr->len, str, len);
+
+	tstr->len += len;
 	tstr->str[tstr->len] = '\0';
 }
 

Index: temp-string.h
===================================================================
RCS file: /home/cvs/dovecot/src/lib/temp-string.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- temp-string.h	9 Oct 2002 17:49:41 -0000	1.3
+++ temp-string.h	20 Dec 2002 04:43:11 -0000	1.4
@@ -13,7 +13,7 @@
 
 /* Append string/character */
 void t_string_append(TempString *tstr, const char *str);
-void t_string_append_n(TempString *tstr, const char *str, size_t size);
+void t_string_append_n(TempString *tstr, const char *str, size_t max_len);
 void t_string_append_c(TempString *tstr, char chr);
 
 /* Append printf()-like data */




More information about the dovecot-cvs mailing list