{ \
r = (f); \
if (r != ISC_R_SUCCESS) { \
- return (r); \
+ goto cleanup; \
} \
}
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,
result = parse_message(&buffer, messagep);
return (result);
+
+cleanup:
+ dns_compress_invalidate(&cctx);
+ return (result);
}
int