kuldeep gupta created THRIFT-2017:
-------------------------------------

             Summary: 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


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

Reply via email to