diff options
author | Vincent Sanders <vince@kyllikki.org> | 2014-09-02 23:30:37 +0100 |
---|---|---|
committer | Vincent Sanders <vince@kyllikki.org> | 2014-09-02 23:30:37 +0100 |
commit | 5492e9679359a731a56b4f304614b48be1a07cd1 (patch) | |
tree | 028f96529b40936b618a1f82c16a260899c078c7 | |
parent | 5e0d290f813554b4e4fb3e516fe3f77dddb280dc (diff) | |
download | netsurf-5492e9679359a731a56b4f304614b48be1a07cd1.tar.gz netsurf-5492e9679359a731a56b4f304614b48be1a07cd1.tar.bz2 |
terminate buffers from X509_NAME_print_ex()
-rw-r--r-- | content/fetchers/curl.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/content/fetchers/curl.c b/content/fetchers/curl.c index 32b7189db..826305e78 100644 --- a/content/fetchers/curl.c +++ b/content/fetchers/curl.c @@ -953,23 +953,29 @@ void fetch_curl_done(CURL *curl_handle, CURLcode result) (void) BIO_set_close(mem, BIO_NOCLOSE); BIO_free(mem); snprintf(ssl_certs[i].issuer, - min(sizeof ssl_certs[i].issuer, - (unsigned) buf->length + 1), - "%s", buf->data); + min(sizeof ssl_certs[i].issuer - 1, + (unsigned) buf->length + 1), + "%s", buf->data); + ssl_certs[i].issuer[min(sizeof ssl_certs[i].issuer, + (unsigned) buf->length)] = 0; BUF_MEM_free(buf); mem = BIO_new(BIO_s_mem()); X509_NAME_print_ex(mem, X509_get_subject_name(certs[i].cert), - 0, XN_FLAG_SEP_CPLUS_SPC | - XN_FLAG_DN_REV | XN_FLAG_FN_NONE); + 0, + XN_FLAG_SEP_CPLUS_SPC | + XN_FLAG_DN_REV | + XN_FLAG_FN_NONE); BIO_get_mem_ptr(mem, &buf); (void) BIO_set_close(mem, BIO_NOCLOSE); BIO_free(mem); snprintf(ssl_certs[i].subject, - min(sizeof ssl_certs[i].subject, - (unsigned) buf->length + 1), + min(sizeof(ssl_certs[i].subject) - 1, + (unsigned) buf->length + 1), "%s", buf->data); + ssl_certs[i].subject[min(sizeof(ssl_certs[i].subject), + (unsigned) buf->length)] = 0; BUF_MEM_free(buf); ssl_certs[i].cert_type = |