diff --git a/src/journal-remote/journal-upload.c b/src/journal-remote/journal-upload.c index af53f98d133..a8f1f7e5115 100644 --- a/src/journal-remote/journal-upload.c +++ b/src/journal-remote/journal-upload.c @@ -72,6 +72,7 @@ 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, @@ -182,27 +183,24 @@ int start_upload(Uploader *u, assert(input_callback); if (!u->header) { - struct curl_slist *h, *l; + _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(); l = curl_slist_append(h, "Transfer-Encoding: chunked"); - if (!l) { - curl_slist_free_all(h); + if (!l) return log_oom(); - } h = l; l = curl_slist_append(h, "Accept: text/plain"); - if (!l) { - curl_slist_free_all(h); + if (!l) return log_oom(); - } h = l; - u->header = h; + u->header = TAKE_PTR(h); } if (!u->easy) {