summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHwankyu Jhun <h.jhun@samsung.com>2016-07-28 18:57:05 +0900
committerSangyoon Jang <s89.jang@samsung.com>2016-08-02 01:23:11 -0700
commit1250538321122063560f6530a5475ea7ec19ade9 (patch)
treef924bddb4f6087ff38b11b910b4c2b31b1c53fc0
parent0e42b464e1daac16be57386b10e8c57ade7402b9 (diff)
downloadwidget-service-1250538321122063560f6530a5475ea7ec19ade9.tar.gz
widget-service-1250538321122063560f6530a5475ea7ec19ade9.tar.bz2
widget-service-1250538321122063560f6530a5475ea7ec19ade9.zip
Fix widget plugin parser
- Use pkgmgr_installer_info_get_target_uid() instead of getuid() - Requires [slp-pkgmgr] https://review.tizen.org/gerrit/#/c/81631/ Change-Id: I003b0c826c3ccb88aeefa612c9ccb1663dcb05e4 Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
-rw-r--r--packaging/libwidget_service.spec1
-rw-r--r--parser/CMakeLists.txt1
-rw-r--r--parser/widget_plugin_parser_db.c24
3 files changed, 23 insertions, 3 deletions
diff --git a/packaging/libwidget_service.spec b/packaging/libwidget_service.spec
index 32097b5..61f8f6d 100644
--- a/packaging/libwidget_service.spec
+++ b/packaging/libwidget_service.spec
@@ -25,6 +25,7 @@ BuildRequires: pkgconfig(libtzplatform-config)
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(aul)
BuildRequires: pkgconfig(cynara-client)
+BuildRequires: pkgconfig(pkgmgr-installer)
%if "%{model_build_feature_widget}" == "0"
ExclusiveArch:
diff --git a/parser/CMakeLists.txt b/parser/CMakeLists.txt
index 95c5697..c4d24d2 100644
--- a/parser/CMakeLists.txt
+++ b/parser/CMakeLists.txt
@@ -14,6 +14,7 @@ pkg_check_modules(PKGS REQUIRED
libxml-2.0
dlog
libtzplatform-config
+ pkgmgr-installer
)
FOREACH(FLAGS ${PKGS_CFLAGS})
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${FLAGS}")
diff --git a/parser/widget_plugin_parser_db.c b/parser/widget_plugin_parser_db.c
index 88cc4dc..d3e84ac 100644
--- a/parser/widget_plugin_parser_db.c
+++ b/parser/widget_plugin_parser_db.c
@@ -24,9 +24,27 @@
#include <dlog.h>
#include <tzplatform_config.h>
+#include <pkgmgr_installer_info.h>
#include "widget_plugin_parser_internal.h"
+static int target_uid_initialized;
+static uid_t target_uid;
+
+static uid_t __get_target_uid(void)
+{
+ int ret;
+
+ if (target_uid_initialized)
+ return target_uid;
+
+ ret = pkgmgr_installer_info_get_target_uid(&target_uid);
+ if (ret < 0)
+ LOGE("Failed to get target uid - %d", ret);
+
+ return target_uid;
+}
+
static int _bind_text(sqlite3_stmt *stmt, int idx, const char *text)
{
if (text)
@@ -38,7 +56,7 @@ static int _bind_text(sqlite3_stmt *stmt, int idx, const char *text)
static const char *_get_root_path(const char *pkgid)
{
const char *path;
- uid_t uid = getuid();
+ uid_t uid = __get_target_uid();
if (uid == 0) {
path = tzplatform_mkpath(TZ_SYS_RO_APP, pkgid);
@@ -257,7 +275,7 @@ int widget_parser_db_insert_widget_class(const char *pkgid, GList *widget_list)
int ret;
sqlite3 *db;
- db = _open_db(getuid(), false);
+ db = _open_db(__get_target_uid(), false);
if (db == NULL)
return -1;
@@ -317,7 +335,7 @@ int widget_parser_db_remove_widget_class(const char *pkgid)
int ret;
sqlite3 *db;
- db = _open_db(getuid(), false);
+ db = _open_db(__get_target_uid(), false);
if (db == NULL)
return -1;