fix defect reported by svace. 29/63529/1 accepted/tizen/mobile/20160324.133026 accepted/tizen/wearable/20160324.132839 submit/tizen_mobile/20160324.110438 submit/tizen_wearable/20160324.110452
authorjang <jiseob.jang@samsung.com>
Thu, 24 Mar 2016 10:49:30 +0000 (19:49 +0900)
committerjang <jiseob.jang@samsung.com>
Thu, 24 Mar 2016 10:49:30 +0000 (19:49 +0900)
Change-Id: I0a6dd52fecd7262a8d0f16a585e012d70d637bc2
Signed-off-by: jang <jiseob.jang@samsung.com>
src/account_offline.c

index aa9ea2eb864b122b689e0bcb22b1e30943634a0d..26a2c17d9c8a76345d67f8f6bc22ae604981a0fe 100644 (file)
@@ -45,6 +45,7 @@
 
 #define APP_GID 100
 #define MIN_USER_UID 5000
+#define PW_BUF_LEN 4096
 
 typedef sqlite3_stmt * account_stmt;
 
@@ -343,7 +344,9 @@ ACCOUNT_INTERNAL_API int account_delete_from_db_by_package_name_offline(const ch
        uid_t uid = -1;
        uid_t gid = -1;
        int return_code = ACCOUNT_ERROR_NONE;
+       struct passwd pw;
        struct passwd *user_pw = NULL;
+       char buf[PW_BUF_LEN];
 
        ACCOUNT_RETURN_VAL((package_name != NULL), {}, ACCOUNT_ERROR_INVALID_PARAMETER, ("package_name is null!"));
 
@@ -355,7 +358,7 @@ ACCOUNT_INTERNAL_API int account_delete_from_db_by_package_name_offline(const ch
        }
 
        setpwent();
-       while ((user_pw = getpwent()) != NULL) {
+       while (!getpwent_r(&pw, buf, PW_BUF_LEN, &user_pw)) {
                uid = user_pw->pw_uid;
                gid = user_pw->pw_gid;
                _INFO("user_pw->pw_uid=[%d], user_pw->pw_gid", uid, gid);