From 849f43b7a0a22ad1a9a2058c532b7ff4d6b9424c Mon Sep 17 00:00:00 2001 From: Yunhee Seo Date: Thu, 26 Jan 2023 16:36:54 +0900 Subject: [PATCH] input: add handling code to avoid memory leak issue Clean-up the reported issue by static analysis. Change-Id: I474f8974943b74eec769a6dfd2c7199261d6155d Signed-off-by: Yunhee Seo --- src/input/input-parser.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/input/input-parser.c b/src/input/input-parser.c index b72c8b1..6fa81db 100644 --- a/src/input/input-parser.c +++ b/src/input/input-parser.c @@ -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) -- 2.7.4