[ https://issues.apache.org/jira/browse/THRIFT-2017?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
kuldeep gupta updated THRIFT-2017: ---------------------------------- Attachment: thrift-jira-thrift-2017_resource_leak.patch adding Patch to resolve the issue. Please review it > Resource Leak in thrift struct under compiler/cpp/src/parse/t_program.h > ----------------------------------------------------------------------- > > Key: THRIFT-2017 > URL: https://issues.apache.org/jira/browse/THRIFT-2017 > Project: Thrift > Issue Type: Bug > Components: C++ - Compiler > Affects Versions: 0.9 > Environment: cpp compiler of thrift 0.9.0 on Linux > 2.6.32-220.el6.x86_64 > Reporter: kuldeep gupta > Attachments: thrift-jira-thrift-2017_resource_leak.patch > > > In file compiler/cpp/src/parse/t_program.h > class t_program : public t_doc { > 59 public: > 60 t_program(std::string path, std::string name) : > 61 path_(path), > 62 name_(name), > 63 out_path_("./"), > 64 out_path_is_absolute_(false) { > 65 scope_ = new t_scope(); > 66 } > 67 > 68 t_program(std::string path) : > 69 path_(path), > 70 out_path_("./"), > 71 out_path_is_absolute_(false) { > 72 name_ = program_name(path); > 73 scope_ = new t_scope(); > 74 } > In Above code at line number 65 and 73 Resource leaks happens as > 1. Allocating memory by calling "new t_scope". > 2. Assigning: "this->scope_" = "new t_scope". > 3. The constructor allocates field "scope_" of "t_program" but there is no > destructor in the code. > destructor should deallocate memroy for t_scope. > which sometimes causes Resource Leak. > Possible patch: > There should be destructor to release the resources allocated dynamically. > ~t_program() { > delete scope_; scope_ = NULL; > } -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira