summaryrefslogtreecommitdiff
path: root/content/fetchers
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2014-09-02 23:30:37 +0100
committerVincent Sanders <vince@kyllikki.org>2014-09-02 23:30:37 +0100
commit5492e9679359a731a56b4f304614b48be1a07cd1 (patch)
tree028f96529b40936b618a1f82c16a260899c078c7 /content/fetchers
parent5e0d290f813554b4e4fb3e516fe3f77dddb280dc (diff)
downloadnetsurf-5492e9679359a731a56b4f304614b48be1a07cd1.tar.gz
netsurf-5492e9679359a731a56b4f304614b48be1a07cd1.tar.bz2
terminate buffers from X509_NAME_print_ex()
Diffstat (limited to 'content/fetchers')
-rw-r--r--content/fetchers/curl.c20
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 =