+ Remove checking root group of tizenglobalapp
+fix require root permission for doing chown/chmod
change-Id: I3a97eeaea544f0cf8431c0028224dafeca8306a0
Signed-off-by: Sabera Djelti (sdi2) <sabera.djelti@open.eurogiciel.org>
+pkg_check_modules(LDPC REQUIRED libtzplatform-config)
+
+
pkg_check_modules(LPKGS REQUIRED glib-2.0 sqlite3 dlog db-util xdgmime vconf libtzplatform-config libsmack)
STRING(REPLACE ";" " " EXTRA_CFLAGS "${LPKGS_CFLAGS}")
SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden")
pkg_check_modules(LPKGS REQUIRED glib-2.0 sqlite3 dlog db-util xdgmime vconf libtzplatform-config libsmack)
STRING(REPLACE ";" " " EXTRA_CFLAGS "${LPKGS_CFLAGS}")
SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden")
Description: Application Information Library
Version: @VERSION@
Requires: sqlite3 vconf dlog db-util
Description: Application Information Library
Version: @VERSION@
Requires: sqlite3 vconf dlog db-util
+Libs: -L@LIBDIR@ -lail -l@LDPC_LIBRARIES@
#define OWNER_ROOT 0
#define GROUP_MENU 6010
#define OWNER_ROOT 0
#define GROUP_MENU 6010
-#define GLOBAL_USER 0 //tzplatform
+#define GLOBAL_USER tzplatform_getuid(TZ_SYS_GLOBALAPP_USER)
#define BUFSZE 1024
#define OPT_DESKTOP_DIRECTORY tzplatform_getenv(TZ_SYS_RW_DESKTOP_APP)
#define USR_DESKTOP_DIRECTORY tzplatform_getenv(TZ_SYS_RO_DESKTOP_APP)
#define BUFSZE 1024
#define OPT_DESKTOP_DIRECTORY tzplatform_getenv(TZ_SYS_RW_DESKTOP_APP)
#define USR_DESKTOP_DIRECTORY tzplatform_getenv(TZ_SYS_RO_DESKTOP_APP)
#include <pwd.h>
#include <sys/smack.h>
#include <sys/stat.h>
#include <pwd.h>
#include <sys/smack.h>
#include <sys/stat.h>
+#include <tzplatform_config.h>
#include "ail_private.h"
#include "ail_db.h"
#include "ail_private.h"
#include "ail_db.h"
-#define GLOBAL_USER 0 //#define tzplatform_getenv(TZ_GLOBAL) //TODO
+#define GLOBAL_USER tzplatform_getuid(TZ_SYS_GLOBALAPP_USER)
#define BUFSIZE 4096
#define QUERY_ATTACH "attach database '%s' as Global"
#define QUERY_CREATE_VIEW_APP "CREATE temp VIEW app_info as select distinct * from (select * from main.app_info m union select * from Global.app_info g)"
#define BUFSIZE 4096
#define QUERY_ATTACH "attach database '%s' as Global"
#define QUERY_CREATE_VIEW_APP "CREATE temp VIEW app_info as select distinct * from (select * from main.app_info m union select * from Global.app_info g)"
asprintf(&result, "%s/.applications/icons/", userinfo->pw_dir);
} else {
result = tzplatform_mkpath(TZ_SYS_RW_ICONS, "/");
asprintf(&result, "%s/.applications/icons/", userinfo->pw_dir);
} else {
result = tzplatform_mkpath(TZ_SYS_RW_ICONS, "/");
- grpinfo = getgrnam("root");
- if (grpinfo == NULL) {
- _E("getgrnam(root) returns NULL !");
- return NULL;
- }
- if (grpinfo->gr_gid != userinfo->pw_gid) {
- _E("UID [%d] does not belong to 'root' group!", uid);
- return NULL;
- }
}
int ret;
mkdir(result, S_IRWXU | S_IRGRP | S_IXGRP | S_IXOTH);
}
int ret;
mkdir(result, S_IRWXU | S_IRGRP | S_IXGRP | S_IXOTH);
- ret = chown(result, uid, grpinfo->gr_gid);
- if (ret == -1) {
- char buf[BUFSIZE];
- strerror_r(errno, buf, sizeof(buf));
- _E("FAIL : chown %s %d.%d, because %s", result, uid, grpinfo->gr_gid, buf);
+ if (getuid() == OWNER_ROOT) {
+ ret = chown(result, uid, grpinfo->gr_gid);
+ if (ret == -1) {
+ char buf[BUFSIZE];
+ strerror_r(errno, buf, sizeof(buf));
+ _E("FAIL : chown %s %d.%d, because %s", result, uid, grpinfo->gr_gid, buf);
+ }
asprintf(&result, "%s/.applications/dbspace/.app_info.db", userinfo->pw_dir);
asprintf(&journal, "%s/.applications/dbspace/.app_info.db-journal", userinfo->pw_dir);
} else {
asprintf(&result, "%s/.applications/dbspace/.app_info.db", userinfo->pw_dir);
asprintf(&journal, "%s/.applications/dbspace/.app_info.db-journal", userinfo->pw_dir);
} else {
- grpinfo = getgrnam("root");
- if (grpinfo == NULL) {
- _E("getgrnam(root) returns NULL !");
- return NULL;
- }
- if (grpinfo->gr_gid != userinfo->pw_gid) {
- _E("UID [%d] does not belong to 'root' group!", uid);
- return NULL;
- }
result = strdup(APP_INFO_DB_FILE);
journal = strdup(APP_INFO_DB_FILE_JOURNAL);
}
result = strdup(APP_INFO_DB_FILE);
journal = strdup(APP_INFO_DB_FILE_JOURNAL);
}
if ((uid != GLOBAL_USER)||((uid == GLOBAL_USER)&& (geteuid() == 0 ))) {
int ret;
mkdir(temp, S_IRWXU | S_IRGRP | S_IXGRP | S_IXOTH);
if ((uid != GLOBAL_USER)||((uid == GLOBAL_USER)&& (geteuid() == 0 ))) {
int ret;
mkdir(temp, S_IRWXU | S_IRGRP | S_IXGRP | S_IXOTH);
- ret = chown(dir + 1, uid, grpinfo->gr_gid);
- if (ret == -1) {
- char buf[BUFSIZE];
- strerror_r(errno, buf, sizeof(buf));
- _E("FAIL : chown %s %d.%d, because %s", dir + 1, uid, grpinfo->gr_gid, buf);
- }
+ if (getuid() == OWNER_ROOT) {
+ ret = chown(dir + 1, uid, grpinfo->gr_gid);
+ if (ret == -1) {
+ char buf[BUFSIZE];
+ strerror_r(errno, buf, sizeof(buf));
+ _E("FAIL : chown %s %d.%d, because %s", dir + 1, uid, grpinfo->gr_gid, buf);
+ }
+ }
}
free(temp);
return result;
}
free(temp);
return result;
}
asprintf(&result, "%s/.applications/desktop/", userinfo->pw_dir);
} else {
}
asprintf(&result, "%s/.applications/desktop/", userinfo->pw_dir);
} else {
- grpinfo = getgrnam("root");
- if (grpinfo == NULL) {
- _E("getgrnam(root) returns NULL !");
- return NULL;
- }
- if (grpinfo->gr_gid != userinfo->pw_gid) {
- _E("UID [%d] does not belong to 'root' group!", uid);
- return NULL;
- }
result = tzplatform_mkpath(TZ_SYS_RW_DESKTOP_APP, "/");
}
if ((uid != GLOBAL_USER)||((uid == GLOBAL_USER)&& (geteuid() == 0 ))) {
result = tzplatform_mkpath(TZ_SYS_RW_DESKTOP_APP, "/");
}
if ((uid != GLOBAL_USER)||((uid == GLOBAL_USER)&& (geteuid() == 0 ))) {
#include <time.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <time.h>
#include <sys/types.h>
#include <sys/wait.h>
+#include <tzplatform_config.h>
#include <xdgmime.h>
#include <vconf.h>
#include <xdgmime.h>
#include <vconf.h>
#include "ail.h"
#define BUFSIZE 4096
#include "ail.h"
#define BUFSIZE 4096
+#define GLOBAL_USER tzplatform_getuid(TZ_SYS_GLOBALAPP_USER)
#define whitespace(c) (((c) == ' ') || ((c) == '\t'))
#define argsdelimiter " \t"
#define whitespace(c) (((c) == ' ') || ((c) == '\t'))
#define argsdelimiter " \t"
static int __is_authorized()
{
uid_t uid = getuid();
static int __is_authorized()
{
uid_t uid = getuid();
+ if ((uid_t) GLOBAL_USER == uid )
/* ail_init db should be called by as root privilege. */
uid_t uid = getuid();
/* ail_init db should be called by as root privilege. */
uid_t uid = getuid();
+ if ((uid_t) GLOBAL_USER == uid)
/* ail_init db should be called by as root privilege. */
uid_t uid = getuid();
/* ail_init db should be called by as root privilege. */
uid_t uid = getuid();
+ if ((uid_t) GLOBAL_USER == uid)