Fix some issues 21/202621/1
authormk5004.lee <mk5004.lee@samsung.com>
Tue, 2 Apr 2019 01:54:34 +0000 (10:54 +0900)
committermk5004.lee <mk5004.lee@samsung.com>
Tue, 2 Apr 2019 01:54:34 +0000 (10:54 +0900)
- memory leak
  use thread safety func

Change-Id: I77f5c19f04a57a247f3bd9fc6ea7ffe5585db41a
Signed-off-by: mk5004.lee <mk5004.lee@samsung.com>
notification-ex/abstract_item.cc
notification-ex/db_manager.cc
notification-ex/time_item.cc

index 858fb64..3440a1c 100644 (file)
@@ -127,7 +127,7 @@ AbstractItem::~AbstractItem() = default;
 
 Bundle AbstractItem::Serialize() const {
   Bundle b;
-  struct tm* timeinfo;
+  struct tm timeinfo;
   char buf[80] = {0,};
 
   if (impl_->uid_ == 0)
@@ -145,8 +145,8 @@ Bundle AbstractItem::Serialize() const {
   b.Add(ABSTRACT_ITEM_UID_KEY, to_string(impl_->uid_));
   b.Add(ABSTRACT_ITEM_TAG_KEY, impl_->tag_);
 
-  timeinfo = localtime(&impl_->time_);
-  strftime (buf, sizeof(buf), "%s", timeinfo);
+  localtime_r(&impl_->time_, &timeinfo);
+  strftime (buf, sizeof(buf), "%s", &timeinfo);
   b.Add(ABSTRACT_ITEM_TIME_KEY, string(buf));
 
   if (!impl_->can_receive_.empty())
index 5b5d5fe..e5baaf2 100644 (file)
@@ -280,6 +280,7 @@ void DBManager::CheckLimit(shared_ptr<item::AbstractItem> addedItem, sqlite3* db
                           addedItem->GetSenderAppId().c_str(), uid);
   if (query == nullptr) {
     LOGE("OOM - sql query");
+    sqlite3_finalize(stmt);
     return;
   }
 
index f02e413..b57b9f4 100644 (file)
@@ -59,15 +59,15 @@ int TimeItem::GetType() const {
 
 Bundle TimeItem::Serialize() const {
   Bundle b;
-  struct tm* timeinfo;
+  struct tm timeinfo;
   char buf[80] = {0,};
 
   b = AbstractItem::Serialize();
 
   //timt_t to tm
-  timeinfo = localtime(&impl_->time_);
+  localtime_r(&impl_->time_, &timeinfo);
   //tm to str
-  strftime (buf, sizeof(buf), "%s", timeinfo);
+  strftime (buf, sizeof(buf), "%s", &timeinfo);
   b.Add(TIME_KEY, std::string(buf));
 
   return b;