diff options
-rw-r--r-- | changes-entries/md_ocsp_query.txt | 4 | ||||
-rw-r--r-- | modules/md/md_curl.c | 4 |
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; |