From f6d503081278358e0c3abb539eed4cda3e886792 Mon Sep 17 00:00:00 2001 From: retoor Date: Thu, 29 May 2025 20:59:25 +0200 Subject: [PATCH] Free. --- http_curl.h | 10 +++++++--- rpylib.so | Bin 98608 -> 98608 bytes 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/http_curl.h b/http_curl.h index da9a2b0..95862c9 100644 --- a/http_curl.h +++ b/http_curl.h @@ -68,7 +68,7 @@ char *curl_post(const char *url, const char *data) { curl_easy_setopt(curl, CURLOPT_URL, url); headers = curl_slist_append(headers, "Content-Type: application/json"); char bearer_header[1337]; - sprintf(bearer_header, "Authorization: Bearer %s", resolve_api_key()); + snprintf(bearer_header, sizeof(bearer_header), "Authorization: Bearer %s", resolve_api_key()); headers = curl_slist_append(headers, bearer_header); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data); @@ -84,6 +84,7 @@ char *curl_post(const char *url, const char *data) { curl_easy_cleanup(curl); return response.data; } + free(response.data); return NULL; } @@ -101,7 +102,7 @@ char *curl_get(const char *url) { curl_easy_setopt(curl, CURLOPT_URL, url); headers = curl_slist_append(headers, "Content-Type: application/json"); char bearer_header[1337]; - sprintf(bearer_header, "Authorization: Bearer %s", resolve_api_key()); + snprintf(bearer_header, sizeof(bearer_header), "Authorization: Bearer %s", resolve_api_key()); headers = curl_slist_append(headers, bearer_header); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback); @@ -112,8 +113,11 @@ char *curl_get(const char *url) { } curl_slist_free_all(headers); curl_easy_cleanup(curl); + } else { + free(response.data); + return NULL; } return response.data; } -#endif +#endif \ No newline at end of file diff --git a/rpylib.so b/rpylib.so index 34207456e4df7b689fc712417535239fc367b94a..91c3308b363f366509d9f1afe3bde576dc42648b 100755 GIT binary patch delta 24972 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 SNhJ>4k{S=}&dxN}KlcA>K2x>;