diff --git a/src/resolve/resolved-dnstls-openssl.c b/src/resolve/resolved-dnstls-openssl.c index f269e4d648..5d92230075 100644 --- a/src/resolve/resolved-dnstls-openssl.c +++ b/src/resolve/resolved-dnstls-openssl.c @@ -6,6 +6,7 @@ #include #include +#include #include "io-util.h" #include "resolved-dns-stream.h" @@ -34,9 +35,11 @@ static int dnstls_flush_write_buffer(DnsStream *stream) { return ss; } else { stream->dnstls_data.write_buffer->length -= ss; - stream->dnstls_data.write_buffer->data += ss; if (stream->dnstls_data.write_buffer->length > 0) { + memmove(stream->dnstls_data.write_buffer->data, + stream->dnstls_data.write_buffer->data + ss, + stream->dnstls_data.write_buffer->length); stream->dnstls_events |= EPOLLOUT; return -EAGAIN; }