Fix bug for get private data 21/72821/3
authorWonnam Jang <wn.jang@samsung.com>
Thu, 2 Jun 2016 12:33:07 +0000 (21:33 +0900)
committerWonnam Jang <wn.jang@samsung.com>
Thu, 9 Jun 2016 02:49:53 +0000 (11:49 +0900)
Change-Id: Ie64e4f1dda5f8b04702e497b238591e260e3aca1
Signed-off-by: Wonnam Jang <wn.jang@samsung.com>
client/tts_dbus.c
include/tts.h
server/ttsd_dbus_server.c
server/ttsd_engine_agent.c

index 3917196..dc7c755 100644 (file)
@@ -660,8 +660,6 @@ int tts_dbus_request_get_private_data(int uid, const char* key, char** data)
                        SLOG(LOG_DEBUG, TAG_TTSC, "<<<< tts get private data : result(%d)", result);
                        if (NULL != temp) {
                                *data = strdup(temp);
-                               free(temp);
-                               temp = NULL;
                        }
                } else {
                        SLOG(LOG_ERROR, TAG_TTSC, "<<<< tts get private data : result(%d)", result);
index ac56cf2..6d0dc9f 100644 (file)
@@ -417,6 +417,8 @@ int tts_set_private_data(tts_h tts, const char* key, const char* data);
  * @brief Gets the private data from tts engine.
  * @since_tizen 3.0
  *
+ * @remarks data must be released using free() when it is no longer required.
+ *
  * @param[in] tts The TTS handle
  * @param[in] key The field name of private data
  * @param[out] data The data
index 5a91bd3..c774b5a 100644 (file)
@@ -609,5 +609,7 @@ int ttsd_dbus_server_get_private_data(DBusConnection* conn, DBusMessage* msg)
        SLOG(LOG_DEBUG, get_tag(), "<<<<<");
        SLOG(LOG_DEBUG, get_tag(), "");
 
+       if (NULL != data)       free(data);
+
        return 0;
 }
index 2727cc8..8af7964 100644 (file)
@@ -1647,12 +1647,15 @@ int ttsd_engine_get_private_data(const char* key, char** data)
                return TTSD_ERROR_NOT_SUPPORTED_FEATURE;
        }
 
+       char* temp = NULL;
        int ret = 0;
-       ret = g_cur_engine.pefuncs->get_private_data(key, data);
+       ret = g_cur_engine.pefuncs->get_private_data(key, &temp);
        if (0 != ret) {
                SLOG(LOG_ERROR, get_tag(), "[Engine Agent ERROR] Fail to get private data(%d)", ret);
        }
 
+       *data = strdup(temp);
+
        return ret;
 }