From 322fc94ccbd577c24784d650f271d532d65b698c Mon Sep 17 00:00:00 2001 From: Changgyu Choi Date: Tue, 16 Nov 2021 18:12:21 +0900 Subject: [PATCH] Change gchar string free function The gchar string that is result of glib's string alloc functions has to release using g_free(). Change-Id: I61d3c156df3cdda080776f38f0888d34f2ed23ee Signed-off-by: Changgyu Choi --- src/bundle-internal.cc | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/bundle-internal.cc b/src/bundle-internal.cc index 55c2181..d30240e 100644 --- a/src/bundle-internal.cc +++ b/src/bundle-internal.cc @@ -187,14 +187,13 @@ unsigned char* Bundle::EncodeRaw(int* size) { bytes.insert(bytes.end(), encoded_bytes.begin(), encoded_bytes.end()); } - char* checksum = static_cast( - g_compute_checksum_for_string(G_CHECKSUM_MD5, - reinterpret_cast(&bytes[0]), - static_cast(bytes.size()))); + gchar* checksum = g_compute_checksum_for_string( + G_CHECKSUM_MD5, reinterpret_cast(&bytes[0]), + static_cast(bytes.size())); if (checksum == nullptr) THROW(BUNDLE_ERROR_OUT_OF_MEMORY); - std::unique_ptr ptr(checksum, std::free); + std::unique_ptr ptr(checksum, g_free); unsigned char* p = reinterpret_cast(checksum); bytes.insert(bytes.begin(), p, p + CHECKSUM_LENGTH); @@ -218,15 +217,15 @@ int Bundle::DecodeRaw(unsigned char* raw, int size) { strncpy(extract_checksum, reinterpret_cast(d_str), CHECKSUM_LENGTH); extract_checksum[CHECKSUM_LENGTH] = '\0'; - char* compute_checksum = g_compute_checksum_for_string(G_CHECKSUM_MD5, - reinterpret_cast(d_str + CHECKSUM_LENGTH), + gchar* compute_checksum = g_compute_checksum_for_string(G_CHECKSUM_MD5, + reinterpret_cast(d_str + CHECKSUM_LENGTH), d_len_raw - CHECKSUM_LENGTH); if (compute_checksum == nullptr) return BUNDLE_ERROR_OUT_OF_MEMORY; - std::unique_ptr compute_ptr(compute_checksum, - std::free); - if (strcmp(extract_checksum, compute_checksum) != 0) + std::unique_ptr compute_ptr(compute_checksum, + g_free); + if (strcmp(extract_checksum, static_cast(compute_checksum)) != 0) return BUNDLE_ERROR_INVALID_PARAMETER; unsigned char* d_r = d_str + CHECKSUM_LENGTH; @@ -281,8 +280,8 @@ std::vector Bundle::Export() { if (base64_bytes == nullptr) THROW(BUNDLE_ERROR_OUT_OF_MEMORY); - std::unique_ptr base64_bytes_ptr(base64_bytes, - std::free); + std::unique_ptr base64_bytes_ptr(base64_bytes, + g_free); argv.push_back(base64_bytes); } -- 2.7.4