From 6c99e7b8a64dc86d2d9d364a54212968942e0370 Mon Sep 17 00:00:00 2001 From: Willem Toorop Date: Fri, 11 May 2018 11:28:52 +0200 Subject: [PATCH] Bugfix getdnsapi/stubby#106: Core dump when ... printing certain configuration. Thanks Han Vinke --- ChangeLog | 2 ++ src/dict.c | 15 +++++---------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index ceb927bd..667f56f2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,6 @@ * 2018-05-??: Version 1.4.2 + * Bugfix getdnsapi/stubby#106: Core dump when printing certain + configuration. Thanks Han Vinke * Bugfix getdnsapi/stubby#99: Partly trace DNSSEC from the root up (for tld and sld), to find insecure delegations quicker. Thanks UniverseXXX diff --git a/src/dict.c b/src/dict.c index 27ed57be..0c86cd0f 100644 --- a/src/dict.c +++ b/src/dict.c @@ -737,21 +737,16 @@ getdns_pp_base64(gldns_buffer *buf, getdns_bindata *bindata) { size_t p = gldns_buffer_position(buf); size_t base64str_sz; - char *target; - size_t avail; if (gldns_buffer_printf(buf, " size); - target = (char *)gldns_buffer_current(buf); - avail = gldns_buffer_remaining(buf); - if (avail >= base64str_sz) - gldns_buffer_skip(buf, gldns_b64_ntop( - bindata->data, bindata->size, - target, base64str_sz)); - else - gldns_buffer_skip(buf, base64str_sz); + if (!gldns_buffer_reserve(buf, base64str_sz)) + return -1; + + gldns_buffer_skip(buf, gldns_b64_ntop(bindata->data, bindata->size, + (char *)gldns_buffer_current(buf), base64str_sz)); if (gldns_buffer_printf(buf, ">") < 0) return -1;