Change gchar string free function 36/266636/6
authorChanggyu Choi <changyu.choi@samsung.com>
Tue, 16 Nov 2021 09:12:21 +0000 (18:12 +0900)
committerChanggyu Choi <changyu.choi@samsung.com>
Tue, 16 Nov 2021 09:43:14 +0000 (18:43 +0900)
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 <changyu.choi@samsung.com>
src/bundle-internal.cc

index 55c2181..d30240e 100644 (file)
@@ -187,14 +187,13 @@ unsigned char* Bundle::EncodeRaw(int* size) {
     bytes.insert(bytes.end(), encoded_bytes.begin(), encoded_bytes.end());
   }
 
-  char* checksum = static_cast<char*>(
-      g_compute_checksum_for_string(G_CHECKSUM_MD5,
-        reinterpret_cast<gchar*>(&bytes[0]),
-        static_cast<gssize>(bytes.size())));
+  gchar* checksum = g_compute_checksum_for_string(
+      G_CHECKSUM_MD5, reinterpret_cast<gchar*>(&bytes[0]),
+      static_cast<gssize>(bytes.size()));
   if (checksum == nullptr)
     THROW(BUNDLE_ERROR_OUT_OF_MEMORY);
 
-  std::unique_ptr<char, decltype(std::free)*> ptr(checksum, std::free);
+  std::unique_ptr<gchar, decltype(g_free)*> ptr(checksum, g_free);
   unsigned char* p = reinterpret_cast<unsigned char*>(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<char*>(d_str), CHECKSUM_LENGTH);
   extract_checksum[CHECKSUM_LENGTH] = '\0';
 
-  char* compute_checksum = g_compute_checksum_for_string(G_CHECKSUM_MD5,
-      reinterpret_cast<char*>(d_str + CHECKSUM_LENGTH),
+  gchar* compute_checksum = g_compute_checksum_for_string(G_CHECKSUM_MD5,
+      reinterpret_cast<gchar*>(d_str + CHECKSUM_LENGTH),
       d_len_raw - CHECKSUM_LENGTH);
   if (compute_checksum == nullptr)
     return BUNDLE_ERROR_OUT_OF_MEMORY;
 
-  std::unique_ptr<char, decltype(std::free)*> compute_ptr(compute_checksum,
-      std::free);
-  if (strcmp(extract_checksum, compute_checksum) != 0)
+  std::unique_ptr<gchar, decltype(g_free)*> compute_ptr(compute_checksum,
+      g_free);
+  if (strcmp(extract_checksum, static_cast<char*>(compute_checksum)) != 0)
     return BUNDLE_ERROR_INVALID_PARAMETER;
 
   unsigned char* d_r = d_str + CHECKSUM_LENGTH;
@@ -281,8 +280,8 @@ std::vector<std::string> Bundle::Export() {
     if (base64_bytes == nullptr)
       THROW(BUNDLE_ERROR_OUT_OF_MEMORY);
 
-    std::unique_ptr<char, decltype(std::free)*> base64_bytes_ptr(base64_bytes,
-        std::free);
+    std::unique_ptr<gchar, decltype(g_free)*> base64_bytes_ptr(base64_bytes,
+        g_free);
     argv.push_back(base64_bytes);
   }