]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
invalidate cctx on error
authorMark Andrews <marka@isc.org>
Tue, 6 Oct 2020 12:50:01 +0000 (23:50 +1100)
committerMark Andrews <marka@isc.org>
Tue, 6 Oct 2020 12:50:01 +0000 (23:50 +1100)
fuzz/dns_message_parse.c

index 4202c609a875b329a3f93a5e81b57bb4e9dd1e67..01d42068bb392fff68908ae4c0b1eb28268f58be 100644 (file)
@@ -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