blob: f0ae1db60d286e5a6871aa92c5a7323a47a4be14 [file] [log] [blame]
From 18bddeaaf225d5becfc10cd2c6a1d037c90574a2 Mon Sep 17 00:00:00 2001
From: Tomas Mraz <tmraz@fedoraproject.org>
Date: Tue, 11 Jun 2019 15:10:21 +0200
Subject: [PATCH] resolved: Fix incorrect use of OpenSSL BUF_MEM
Fixes: #12763
Upstream-Status: Backport [Not yet released]
https://github.com/systemd/systemd/commit/18bddeaaf225d5becfc10cd2c6a1d037c90574a2
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
---
src/resolve/resolved-dnstls-openssl.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/resolve/resolved-dnstls-openssl.c b/src/resolve/resolved-dnstls-openssl.c
index f269e4d6487f..5d9223007581 100644
--- a/src/resolve/resolved-dnstls-openssl.c
+++ b/src/resolve/resolved-dnstls-openssl.c
@@ -6,6 +6,7 @@
#include <openssl/bio.h>
#include <openssl/err.h>
+#include <string.h>
#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;
}
--
2.17.1