Fix memleak issue reported by Dexter tool. 60/225060/2
authorGaurav Gupta <g.gupta@samsung.com>
Mon, 17 Feb 2020 05:38:45 +0000 (11:08 +0530)
committersanghyeok oh <sanghyeok.oh@samsung.com>
Fri, 27 Mar 2020 03:58:39 +0000 (03:58 +0000)
Change-Id: I24e2d2d6b6ecb3e3daf0edd94fe67866f369e87a

src/internal/xml_parser.cpp

index 62d8372..dba29ff 100644 (file)
@@ -223,16 +223,20 @@ std::unique_ptr<char[]> file2str(const char *filename) {
        }
 
        if (fseek(fp, 0, SEEK_END)) {
+               fclose(fp);
                throw std::runtime_error(std::string("Failed to fseek end of file").c_str());
        }
        long fsize = ftell(fp);
        if (fsize < 0) {
+               fclose(fp);
                throw std::runtime_error(std::string("Failed to ftell").c_str());
        }
        if (fsize > (MAX_CONF_SIZE)) {
+               fclose(fp);
                throw std::runtime_error(std::string("File size over ").append(std::to_string(MAX_CONF_SIZE)).append("Bytes").c_str());
        }
        if (fseek(fp, 0, SEEK_SET)) {
+               fclose(fp);
                throw std::runtime_error(std::string("Failed to fseek beginning of file").c_str());
        }