libdbuspolicy:svace 06/62806/1 accepted/tizen/common/20160318.150325 accepted/tizen/ivi/20160321.004932 accepted/tizen/mobile/20160321.004840 accepted/tizen/tv/20160321.004856 accepted/tizen/wearable/20160321.004912 submit/tizen/20160318.110014
authorKazimierz Krosman <k.krosman@samsung.com>
Fri, 18 Mar 2016 10:38:29 +0000 (11:38 +0100)
committerKazimierz Krosman <k.krosman@samsung.com>
Fri, 18 Mar 2016 10:38:29 +0000 (11:38 +0100)
Change-Id: Ibb899e8d6a56b99343ffe2d7b7f427b179b863f1

src/libdbuspolicy1.c

index a406da7..c33f525 100644 (file)
@@ -251,12 +251,27 @@ DBUSPOLICY1_EXPORT void* dbuspolicy1_init(unsigned int bus_type)
     if(r >= 0) {
         p_udesc = (struct udesc*)malloc(sizeof(struct udesc));
         if(p_udesc) {
+            struct passwd pwent;
+            struct passwd *pwd;
+            struct group grent;
+            struct group* gg;
+            char buf[1024];
+
             p_udesc->bus_type = bus_type;
             p_udesc->uid = getuid();
             p_udesc->gid = getgid();
-            struct passwd* pwd = getpwuid(p_udesc->uid);
+
+            if (getpwuid_r(p_udesc->uid, &pwent, buf, sizeof(buf), &pwd) ) {
+                p_udesc = NULL;
+                return p_udesc;
+            }
+
+            if (getgrgid_r(p_udesc->gid, &grent, buf, sizeof(buf), &gg) ) {
+                p_udesc = NULL;
+                return p_udesc;
+            }
+
             strncpy(p_udesc->user, pwd->pw_name, sizeof(p_udesc->user)-1);
-            struct group* gg = getgrgid(p_udesc->gid);
             strncpy(p_udesc->group, gg->gr_name, sizeof(p_udesc->group)-1);
             p_udesc->conn = kc;