library: Fix subsession_user_copy() 84/277984/1 accepted/tizen/unified/20220719.014548 submit/tizen/20220715.154248 submit/tizen/20220718.045828 submit/tizen/20220718.115742
authorKarol Lewandowski <k.lewandowsk@samsung.com>
Fri, 15 Jul 2022 15:04:08 +0000 (17:04 +0200)
committerKarol Lewandowski <k.lewandowsk@samsung.com>
Fri, 15 Jul 2022 15:07:14 +0000 (17:07 +0200)
This commit fixes strlen() to be invoked on source string, not
destination.

Change-Id: I9eeef27e6c713134ddfedf79e66a3f28dafb7f1d

libsessiond/src/lib.c
packaging/sessiond.spec

index 594435e..c6a4ebf 100644 (file)
@@ -443,7 +443,7 @@ static bool signal_handler_internal(const gchar *signal_name,
 
 static inline void *subsession_user_copy(subsession_user_t dst, subsession_user_t src)
 {
-       return memcpy(dst, src, strnlen(dst, sizeof(subsession_user_t)-1) + 1);
+       return memcpy(dst, src, strnlen(src, sizeof(subsession_user_t)-1) + 1);
 }
 
 static void signal_addremove_common_handler(GDBusConnection *connection,
@@ -1047,7 +1047,7 @@ EXPORT_API int subsession_get_user_list(int session_uid, subsession_user_t **use
                *user_list = list;
 
                for (gsize i = 0; i < elem_no; ++i) {
-                       memcpy((*user_list)[i], data[i], strnlen(data[i], sizeof(subsession_user_t)-1) + 1);
+                       subsession_user_copy((*user_list)[i], data[i]);
                }
        }
 
@@ -1089,7 +1089,7 @@ EXPORT_API int subsession_get_current_user(int session_uid, subsession_user_t us
        if (get_user == NULL) {
                return_with_log_error_result_(SUBSESSION_ERROR_OUT_OF_MEMORY);
        }
-       memcpy(user, get_user, strnlen(get_user, sizeof(subsession_user_t)-1) + 1);
+       subsession_user_copy(user, get_user);
 
        return SUBSESSION_ERROR_NONE;
 }
index 1e749cf..8ccead5 100644 (file)
@@ -1,6 +1,6 @@
 Name:       sessiond
 Summary:    Service to manage subsessions
-Version:    0.4.2
+Version:    0.4.3
 Release:    1
 Group:      System/Management
 License:    MIT