input: add handling code to avoid memory leak issue 93/287293/2
authorYunhee Seo <yuni.seo@samsung.com>
Thu, 26 Jan 2023 07:36:54 +0000 (16:36 +0900)
committerYunhee Seo <yuni.seo@samsung.com>
Thu, 26 Jan 2023 08:16:38 +0000 (17:16 +0900)
Clean-up the reported issue by static analysis.

Change-Id: I474f8974943b74eec769a6dfd2c7199261d6155d
Signed-off-by: Yunhee Seo <yuni.seo@samsung.com>
src/input/input-parser.c

index b72c8b1..6fa81db 100644 (file)
@@ -109,23 +109,29 @@ static int parse_input_device_section(const struct parse_result *result, void *d
 
        SYS_G_LIST_FOREACH(result->props, temp_glist, temp_section_prop) {
                if (parse_input_device_property(temp_section_prop, &input_dev_info) < 0)
-                       return -EPERM;
+                       goto out_parsing_fail;
        }
 
        if (input_dev_info->input_device_default == 1) {
                if (is_default_input_device_duplicated(input_dev_info->input_device_type))
-                       return -EPERM;
+                       goto out_parsing_fail;
        }
        ret = input_devman_add_device(input_dev_info->input_device_type,
                input_dev_info->input_device_id,
                input_dev_info->input_device_default,
                input_dev_info->input_device_name);
+       free(input_dev_info->input_device_name);
        free(input_dev_info);
 
        if (ret < 0)
                return ret;
 
        return 0;
+
+out_parsing_fail:
+       free(input_dev_info->input_device_name);
+       free(input_dev_info);
+       return -EPERM;
 }
 
 int input_parser_init(void)