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;