From: Shivam Verma Date: Wed, 28 May 2025 14:49:16 +0000 (+0530) Subject: Change to get smack label via cynara API X-Git-Tag: accepted/tizen/unified/20250602.182617^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=06ad99efeb229cd8ff6ec85d4d0c9d9389dbeb73;p=platform%2Fcore%2Faccount%2Fliboauth2.git Change to get smack label via cynara API Change-Id: Ibe89e915a17a6114b4212ff0c317c760f629e3c7 --- diff --git a/packaging/oauth2.spec b/packaging/oauth2.spec index bd78cb9..bcb2df9 100644 --- a/packaging/oauth2.spec +++ b/packaging/oauth2.spec @@ -1,6 +1,6 @@ Name: oauth2 Summary: Tizen oauth 2.0 Framework -Version: 0.0.8 +Version: 0.0.9 Release: 1 Group: Social & Content/API License: Apache-2.0 @@ -22,6 +22,7 @@ BuildRequires: pkgconfig(json-glib-1.0) BuildRequires: pkgconfig(elementary) BuildRequires: pkgconfig(cynara-client) BuildRequires: pkgconfig(capi-system-info) +BuildRequires: pkgconfig(cynara-creds-self) Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4390bbc..cc7e3ae 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -24,9 +24,9 @@ endif() if(USE_CHROMIUM_EFL) add_definitions(-DWITH_CHROMIUM) - pkg_check_modules(clientpkgs REQUIRED dlog glib-2.0 gio-2.0 gio-unix-2.0 capi-base-common libcurl efl-extension ecore evas chromium-efl json-glib-1.0 elementary cynara-client capi-system-info) + pkg_check_modules(clientpkgs REQUIRED dlog glib-2.0 gio-2.0 gio-unix-2.0 capi-base-common libcurl efl-extension ecore evas chromium-efl json-glib-1.0 elementary cynara-client capi-system-info cynara-creds-self) else() - pkg_check_modules(clientpkgs REQUIRED dlog glib-2.0 gio-2.0 gio-unix-2.0 capi-base-common libcurl efl-extension ecore evas ewebkit2 json-glib-1.0 elementary cynara-client capi-system-info) + pkg_check_modules(clientpkgs REQUIRED dlog glib-2.0 gio-2.0 gio-unix-2.0 capi-base-common libcurl efl-extension ecore evas ewebkit2 json-glib-1.0 elementary cynara-client capi-system-info cynara-creds-self) endif() FOREACH(flag ${clientpkgs_CFLAGS}) diff --git a/src/oauth2_manager.c b/src/oauth2_manager.c index 9617cfc..1d8e137 100755 --- a/src/oauth2_manager.c +++ b/src/oauth2_manager.c @@ -18,6 +18,7 @@ #include #include #include +#include #include #include "oauth2_manager.h" @@ -97,9 +98,8 @@ __check_permission(void) if (-1 == has_internet_permission) { int ret; - char smack_label[SMACK_LABEL_LEN + 1] = {0}; + char *smack_label = NULL; char uid[10]; - FILE *fd; cynara *cynara_h = NULL; ret = cynara_initialize(&cynara_h, NULL); @@ -108,19 +108,13 @@ __check_permission(void) return false; } - fd = fopen("/proc/self/attr/current", "r"); - if (NULL == fd) { - OAUTH2_LOG_E("fopen() Fail(%d)", errno); - return false; - } + snprintf(uid, sizeof(uid), "%d", getuid()); - ret = fread(smack_label, sizeof(smack_label), 1, fd); - fclose(fd); - if (ret < 0) { - OAUTH2_LOG_E("fread() Fail(%d)", ret); - return 0; + ret = cynara_creds_self_get_client(CLIENT_METHOD_DEFAULT, &smack_label); + if (ret != CYNARA_API_SUCCESS) { + OAUTH2_LOG_E("failed to get smack label"); + return false; } - snprintf(uid, sizeof(uid), "%d", getuid()); ret = cynara_check(cynara_h, smack_label, "", uid, INTERNET_PRIVILEGE); if (CYNARA_API_ACCESS_ALLOWED == ret) @@ -128,6 +122,9 @@ __check_permission(void) else has_internet_permission = 0; + if (smack_label) + free(smack_label); + cynara_finish(cynara_h); }