Просмотр исходного кода

fix memory leak in url encode and decode

zhangzifa 7 лет назад
Родитель
Сommit
6a5f788210

+ 0 - 1
core/src/InstanceProfileCredentialsProvider.cc

@@ -19,7 +19,6 @@
 #include "EcsMetadataFetcher.h"
 #include <chrono>
 #include <iomanip>
-#include <chrono>
 #include <mutex>
 #include <sstream>
 

+ 2 - 0
core/src/Utils.cc

@@ -49,6 +49,7 @@ std::string AlibabaCloud::UrlEncode(const std::string & src) {
   char *output = curl_easy_escape(curl, src.c_str(), src.size());
   std::string result(output);
   curl_free(output);
+  curl_easy_cleanup(curl);
   return result;
 }
 
@@ -58,6 +59,7 @@ std::string AlibabaCloud::UrlDecode(const std::string & src) {
   char *output = curl_easy_unescape(curl, src.c_str(), src.size(), &outlength);
   std::string result(output, outlength);
   curl_free(output);
+  curl_easy_cleanup(curl);
   return result;
 }
 

+ 2 - 2
test/function_test/nlp/nlp_wordsegment_ft.cc

@@ -25,14 +25,14 @@ namespace {
     request.setDomain("nlp.cn-shanghai.aliyuncs.com");
     request.setResourcePath("/nlp/api/wordsegment/general");
     request.setHttpMethod(HttpRequest::Post);
-    const char * data = "{\"lang\":\"ZH\",\"text\":\"Iphone is a bad choice 专用数据线\"}";
+    const char * data = "{\"lang\":\"ZH\",\"text\":\"Iphone is a good choice 专用数据线\"}";
     request.setContent(data, strlen(data));
     request.setHeaderParameter("Content-Type", "application/json;chrset=utf-8");
     request.setVersion("2018-04-08");
 
     auto outcome = client.commonResponse(request);
     EXPECT_TRUE(outcome.error().errorCode().empty());
-    const std::string expected = "{\"data\":[{\"id\":0,\"word\":\"Iphone\"},{\"id\":1,\"word\":\" \"},{\"id\":2,\"word\":\"is\"},{\"id\":3,\"word\":\" \"},{\"id\":4,\"word\":\"a\"},{\"id\":5,\"word\":\" \"},{\"id\":6,\"word\":\"bad\"},{\"id\":7,\"word\":\" \"},{\"id\":8,\"word\":\"choice\"},{\"id\":9,\"word\":\" \"},{\"id\":10,\"word\":\"专用\"},{\"id\":11,\"word\":\"数据线\"}]}";
+    const std::string expected = "{\"data\":[{\"id\":0,\"word\":\"Iphone\"},{\"id\":1,\"word\":\" \"},{\"id\":2,\"word\":\"is\"},{\"id\":3,\"word\":\" \"},{\"id\":4,\"word\":\"a\"},{\"id\":5,\"word\":\" \"},{\"id\":6,\"word\":\"good\"},{\"id\":7,\"word\":\" \"},{\"id\":8,\"word\":\"choice\"},{\"id\":9,\"word\":\" \"},{\"id\":10,\"word\":\"专用\"},{\"id\":11,\"word\":\"数据线\"}]}";
     EXPECT_TRUE(outcome.result().payload() == expected);
     AlibabaCloud::ShutdownSdk();
   }