From: Mark Andrews Date: Tue, 6 Oct 2020 12:50:01 +0000 (+1100) Subject: invalidate cctx on error X-Git-Tag: v9.17.6~9^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0d978878c5931a275cc3085047524168205f650c;p=thirdparty%2Fbind9.git invalidate cctx on error --- diff --git a/fuzz/dns_message_parse.c b/fuzz/dns_message_parse.c index 4202c609a87..01d42068bb3 100644 --- a/fuzz/dns_message_parse.c +++ b/fuzz/dns_message_parse.c @@ -92,7 +92,7 @@ print_message(dns_message_t *message) { { \ r = (f); \ if (r != ISC_R_SUCCESS) { \ - return (r); \ + goto cleanup; \ } \ } @@ -110,7 +110,10 @@ render_message(dns_message_t **messagep) { message->counts[i] = 0; } - CHECKRESULT(result, dns_compress_init(&cctx, -1, mctx)); + result = dns_compress_init(&cctx, -1, mctx); + if (result != ISC_R_SUCCESS) { + return (result); + } CHECKRESULT(result, dns_message_renderbegin(message, &cctx, &buffer)); CHECKRESULT(result, dns_message_rendersection(message, @@ -135,6 +138,10 @@ render_message(dns_message_t **messagep) { result = parse_message(&buffer, messagep); return (result); + +cleanup: + dns_compress_invalidate(&cctx); + return (result); } int