Modify to check the result of strdup 49/307249/4
authorSangYoun Kwak <sy.kwak@samsung.com>
Tue, 5 Mar 2024 10:34:08 +0000 (19:34 +0900)
committerSangYoun Kwak <sy.kwak@samsung.com>
Thu, 7 Mar 2024 08:29:32 +0000 (17:29 +0900)
The strdup function call can be failed if memory allocation is failed
just like malloc.
Thus, codes for checking if strdup is failed or not are added.

If strdup fails, they print error log message and return error code.

Change-Id: I28a9fcd77388a4864db20e38086e6b79d8ef977c
Signed-off-by: SangYoun Kwak <sy.kwak@samsung.com>
src/plugin.c

index fc0a7eebc6c92add5a42616e8f1e6fe7bb1c1e49..4ae70e9d661098bcebcaa002d9587f007201a3d2 100644 (file)
@@ -203,6 +203,12 @@ static int get_strings_from_file(FILE *fp, off_t file_size)
                                char* key = strdup(read_word);
                                char* value = strtok(NULL, separators);
 
+                               if (!key) {
+                                       _E("Failed to strdup for read_word");
+                                       ret = SYSCOMMON_UPDATE_CONTROL_ERROR_OUT_OF_MEMORY;
+                                       goto cleanup;
+                               }
+
                                if (strcmp(key, arch_key) == 0) {
                                        strncpy_guard_truncate(device_info->arch, value, STR_SIZE);
                                }
@@ -825,10 +831,15 @@ static int update_control_get_property(syscommon_update_control_property_e prope
 
        switch (property) {
        case SYSCOMMON_UPDATE_CONTROL_PROPERTY_PACKAGE_URI:
-               if (update_info->package_uri)
+               if (update_info->package_uri) {
                        *value = (void *)strdup(update_info->package_uri);
-               else
+                       if (!*value) {
+                               _E("Failed to strdup for update_info->package_uri");
+                               return SYSCOMMON_UPDATE_CONTROL_ERROR_OUT_OF_MEMORY;
+                       }
+               } else {
                        _D("Package URI is NULL");
+               }
                break;
        case SYSCOMMON_UPDATE_CONTROL_PROPERTY_RESULT:
        {