]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
resolved-dns-rr: use automatic cleanup
authorDavid Tardon <dtardon@redhat.com>
Thu, 25 May 2023 08:30:06 +0000 (10:30 +0200)
committerMike Yuan <me@yhndnzj.com>
Thu, 25 May 2023 16:17:59 +0000 (00:17 +0800)
Follow-up for #27770.

src/resolve/resolved-dns-rr.c

index 44d1d1f1e6e4ddcaac83fa4d4593ca56e9c516fd..603bb1a10d5ea8dde87d11f529eeed22f27054f4 100644 (file)
@@ -1197,7 +1197,7 @@ ssize_t dns_resource_record_payload(DnsResourceRecord *rr, void **out) {
 
 int dns_resource_record_to_wire_format(DnsResourceRecord *rr, bool canonical) {
 
-        DnsPacket packet = {
+        _cleanup_(dns_packet_unref) DnsPacket packet = {
                 .n_ref = 1,
                 .protocol = DNS_PROTOCOL_DNS,
                 .on_stack = true,
@@ -1222,10 +1222,8 @@ int dns_resource_record_to_wire_format(DnsResourceRecord *rr, bool canonical) {
                 return 0;
 
         r = dns_packet_append_rr(&packet, rr, 0, &start, &rds);
-        if (r < 0) {
-                dns_packet_unref(&packet);
+        if (r < 0)
                 return r;
-        }
 
         assert(start == 0);
         assert(packet._data);
@@ -1236,8 +1234,6 @@ int dns_resource_record_to_wire_format(DnsResourceRecord *rr, bool canonical) {
         rr->wire_format_rdata_offset = rds;
         rr->wire_format_canonical = canonical;
 
-        dns_packet_unref(&packet);
-
         return 0;
 }