The dict API currently doesn't support NULs in values, so they have to be
truncated. However, previously they were truncated at NULs, but more data
may have still been appended to the value. This could have produced
somewhat random results.
str = str_new(pool, i_stream_get_data_size(input)+1);
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);
}
i_assert(ret == -1);
size = conn->reply_bytes_left;
conn->reply_bytes_left -= size;
- str_append_n(conn->reply_str, data, size);
+ str_append_data(conn->reply_str, data, size);
i_stream_skip(conn->conn.input, size);
if (conn->reply_bytes_left > 0)
return FALSE;
data = i_stream_get_data(conn->conn.input, &size);
if (size > conn->bytes_left)
size = conn->bytes_left;
- str_append_n(conn->last_reply, data, size);
+ str_append_data(conn->last_reply, data, size);
conn->bytes_left -= size;
i_stream_skip(conn->conn.input, size);