diff --git a/src/journal-remote/journal-gatewayd.c b/src/journal-remote/journal-gatewayd.c index 86df022b64..4cefe3918c 100644 --- a/src/journal-remote/journal-gatewayd.c +++ b/src/journal-remote/journal-gatewayd.c @@ -641,7 +641,7 @@ static int request_handler_redirect( struct MHD_Connection *connection, const char *target) { - char *page; + _cleanup_free_ char *page = NULL; _cleanup_(MHD_destroy_responsep) struct MHD_Response *response = NULL; assert(connection); @@ -651,10 +651,9 @@ static int request_handler_redirect( return respond_oom(connection); response = MHD_create_response_from_buffer(strlen(page), page, MHD_RESPMEM_MUST_FREE); - if (!response) { - free(page); + if (!response) return respond_oom(connection); - } + TAKE_PTR(page); if (MHD_add_response_header(response, "Content-Type", "text/html") == MHD_NO || MHD_add_response_header(response, "Location", target) == MHD_NO) diff --git a/src/journal-remote/journal-upload.c b/src/journal-remote/journal-upload.c index e56e336b4f..a8f1f7e511 100644 --- a/src/journal-remote/journal-upload.c +++ b/src/journal-remote/journal-upload.c @@ -71,6 +71,9 @@ static void close_fd_input(Uploader *u); } \ } while (0) +DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(CURL*, curl_easy_cleanup, NULL); +DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(struct curl_slist*, curl_slist_free_all, NULL); + static size_t output_callback(char *buf, size_t size, size_t nmemb, @@ -180,29 +183,28 @@ int start_upload(Uploader *u, assert(input_callback); if (!u->header) { - struct curl_slist *h; + _cleanup_(curl_slist_free_allp) struct curl_slist *h = NULL; + struct curl_slist *l; h = curl_slist_append(NULL, "Content-Type: application/vnd.fdo.journal"); if (!h) return log_oom(); - h = curl_slist_append(h, "Transfer-Encoding: chunked"); - if (!h) { - curl_slist_free_all(h); + l = curl_slist_append(h, "Transfer-Encoding: chunked"); + if (!l) return log_oom(); - } + h = l; - h = curl_slist_append(h, "Accept: text/plain"); - if (!h) { - curl_slist_free_all(h); + l = curl_slist_append(h, "Accept: text/plain"); + if (!l) return log_oom(); - } + h = l; - u->header = h; + u->header = TAKE_PTR(h); } if (!u->easy) { - CURL *curl; + _cleanup_(curl_easy_cleanupp) CURL *curl = NULL; curl = curl_easy_init(); if (!curl) @@ -260,7 +262,7 @@ int start_upload(Uploader *u, easy_setopt(curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1, LOG_WARNING, ); - u->easy = curl; + u->easy = TAKE_PTR(curl); } else { /* truncate the potential old error message */ u->error[0] = '\0'; diff --git a/src/resolve/resolved-dns-rr.c b/src/resolve/resolved-dns-rr.c index 7e76e0c6cc..5b0e601e97 100644 --- a/src/resolve/resolved-dns-rr.c +++ b/src/resolve/resolved-dns-rr.c @@ -820,8 +820,8 @@ static char *format_txt(DnsTxtItem *first) { } const char *dns_resource_record_to_string(DnsResourceRecord *rr) { - _cleanup_free_ char *t = NULL; - char *s, k[DNS_RESOURCE_KEY_STRING_MAX]; + _cleanup_free_ char *s = NULL, *t = NULL; + char k[DNS_RESOURCE_KEY_STRING_MAX]; int r; assert(rr); @@ -871,18 +871,15 @@ const char *dns_resource_record_to_string(DnsResourceRecord *rr) { return NULL; break; - case DNS_TYPE_A: { - _cleanup_free_ char *x = NULL; - - r = in_addr_to_string(AF_INET, (const union in_addr_union*) &rr->a.in_addr, &x); + case DNS_TYPE_A: + r = in_addr_to_string(AF_INET, (const union in_addr_union*) &rr->a.in_addr, &t); if (r < 0) return NULL; - s = strjoin(k, " ", x); + s = strjoin(k, " ", t); if (!s) return NULL; break; - } case DNS_TYPE_AAAA: r = in_addr_to_string(AF_INET6, (const union in_addr_union*) &rr->aaaa.in6_addr, &t); @@ -965,7 +962,6 @@ const char *dns_resource_record_to_string(DnsResourceRecord *rr) { case DNS_TYPE_DNSKEY: { _cleanup_free_ char *alg = NULL; - char *ss; uint16_t key_tag; key_tag = dnssec_keytag(rr, true); @@ -974,7 +970,7 @@ const char *dns_resource_record_to_string(DnsResourceRecord *rr) { if (r < 0) return NULL; - r = asprintf(&s, "%s %u %u %s", + r = asprintf(&t, "%s %u %u %s", k, rr->dnskey.flags, rr->dnskey.protocol, @@ -982,24 +978,22 @@ const char *dns_resource_record_to_string(DnsResourceRecord *rr) { if (r < 0) return NULL; - r = base64_append(&s, r, + r = base64_append(&t, r, rr->dnskey.key, rr->dnskey.key_size, 8, columns()); if (r < 0) return NULL; - r = asprintf(&ss, "%s\n" + r = asprintf(&s, "%s\n" " -- Flags:%s%s%s\n" " -- Key tag: %u", - s, + t, rr->dnskey.flags & DNSKEY_FLAG_SEP ? " SEP" : "", rr->dnskey.flags & DNSKEY_FLAG_REVOKE ? " REVOKE" : "", rr->dnskey.flags & DNSKEY_FLAG_ZONE_KEY ? " ZONE_KEY" : "", key_tag); if (r < 0) return NULL; - free(s); - s = ss; break; } @@ -1123,18 +1117,16 @@ const char *dns_resource_record_to_string(DnsResourceRecord *rr) { break; } - case DNS_TYPE_CAA: { - _cleanup_free_ char *value; - - value = octescape(rr->caa.value, rr->caa.value_size); - if (!value) + case DNS_TYPE_CAA: + t = octescape(rr->caa.value, rr->caa.value_size); + if (!t) return NULL; r = asprintf(&s, "%s %u %s \"%s\"%s%s%s%.0u", k, rr->caa.flags, rr->caa.tag, - value, + t, rr->caa.flags ? "\n -- Flags:" : "", rr->caa.flags & CAA_FLAG_CRITICAL ? " critical" : "", rr->caa.flags & ~CAA_FLAG_CRITICAL ? " " : "", @@ -1143,9 +1135,8 @@ const char *dns_resource_record_to_string(DnsResourceRecord *rr) { return NULL; break; - } - case DNS_TYPE_OPENPGPKEY: { + case DNS_TYPE_OPENPGPKEY: r = asprintf(&s, "%s", k); if (r < 0) return NULL; @@ -1156,7 +1147,6 @@ const char *dns_resource_record_to_string(DnsResourceRecord *rr) { if (r < 0) return NULL; break; - } default: t = hexmem(rr->generic.data, rr->generic.data_size); @@ -1171,7 +1161,7 @@ const char *dns_resource_record_to_string(DnsResourceRecord *rr) { } rr->to_string = s; - return s; + return TAKE_PTR(s); } ssize_t dns_resource_record_payload(DnsResourceRecord *rr, void **out) { diff --git a/src/systemctl/systemctl-edit.c b/src/systemctl/systemctl-edit.c index 7cb58c5208..314962ac69 100644 --- a/src/systemctl/systemctl-edit.c +++ b/src/systemctl/systemctl-edit.c @@ -187,10 +187,12 @@ static int create_edit_temp_file(const char *new_path, const char *original_path fprintf(f, "\n\n### %s", *path); if (!isempty(contents)) { - contents = strreplace(strstrip(contents), "\n", "\n# "); - if (!contents) + _cleanup_free_ char *commented_contents = NULL; + + commented_contents = strreplace(strstrip(contents), "\n", "\n# "); + if (!commented_contents) return log_oom(); - fprintf(f, "\n# %s", contents); + fprintf(f, "\n# %s", commented_contents); } }