summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--changes-entries/md_ocsp_query.txt4
-rw-r--r--modules/md/md_curl.c4
2 files changed, 7 insertions, 1 deletions
diff --git a/changes-entries/md_ocsp_query.txt b/changes-entries/md_ocsp_query.txt
new file mode 100644
index 0000000000..f07a2ed946
--- /dev/null
+++ b/changes-entries/md_ocsp_query.txt
@@ -0,0 +1,4 @@
+ *) mod_md: a logic bug in sending long OCSP HTTP request bodies was fixed.
+ This did not happen in normal use as request sizes for OSCP queries
+ never exceed that length.
+ [Stefan Eissing, Ronald Crane (Zippenhop LLC)] \ No newline at end of file
diff --git a/modules/md/md_curl.c b/modules/md/md_curl.c
index 3a69ad4d98..0a399f9a50 100644
--- a/modules/md/md_curl.c
+++ b/modules/md/md_curl.c
@@ -64,6 +64,7 @@ static size_t req_data_cb(void *data, size_t len, size_t nmemb, void *baton)
apr_bucket_brigade *body = baton;
size_t blen, read_len = 0, max_len = len * nmemb;
const char *bdata;
+ char *rdata = data;
apr_bucket *b;
apr_status_t rv;
@@ -81,9 +82,10 @@ static size_t req_data_cb(void *data, size_t len, size_t nmemb, void *baton)
apr_bucket_split(b, max_len);
blen = max_len;
}
- memcpy(data, bdata, blen);
+ memcpy(rdata, bdata, blen);
read_len += blen;
max_len -= blen;
+ rdata += blen;
}
else {
body = NULL;