blob: f0ae1db60d286e5a6871aa92c5a7323a47a4be14 [file] [log] [blame]
Brad Bishop15ae2502019-06-18 21:44:24 -04001From 18bddeaaf225d5becfc10cd2c6a1d037c90574a2 Mon Sep 17 00:00:00 2001
2From: Tomas Mraz <tmraz@fedoraproject.org>
3Date: Tue, 11 Jun 2019 15:10:21 +0200
4Subject: [PATCH] resolved: Fix incorrect use of OpenSSL BUF_MEM
5
6Fixes: #12763
7Upstream-Status: Backport [Not yet released]
8 https://github.com/systemd/systemd/commit/18bddeaaf225d5becfc10cd2c6a1d037c90574a2
9Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
10---
11 src/resolve/resolved-dnstls-openssl.c | 5 ++++-
12 1 file changed, 4 insertions(+), 1 deletion(-)
13
14diff --git a/src/resolve/resolved-dnstls-openssl.c b/src/resolve/resolved-dnstls-openssl.c
15index f269e4d6487f..5d9223007581 100644
16--- a/src/resolve/resolved-dnstls-openssl.c
17+++ b/src/resolve/resolved-dnstls-openssl.c
18@@ -6,6 +6,7 @@
19
20 #include <openssl/bio.h>
21 #include <openssl/err.h>
22+#include <string.h>
23
24 #include "io-util.h"
25 #include "resolved-dns-stream.h"
26@@ -34,9 +35,11 @@ static int dnstls_flush_write_buffer(DnsStream *stream) {
27 return ss;
28 } else {
29 stream->dnstls_data.write_buffer->length -= ss;
30- stream->dnstls_data.write_buffer->data += ss;
31
32 if (stream->dnstls_data.write_buffer->length > 0) {
33+ memmove(stream->dnstls_data.write_buffer->data,
34+ stream->dnstls_data.write_buffer->data + ss,
35+ stream->dnstls_data.write_buffer->length);
36 stream->dnstls_events |= EPOLLOUT;
37 return -EAGAIN;
38 }
39--
402.17.1
41