[ https://issues.apache.org/jira/browse/THRIFT-1522?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14612976#comment-14612976 ]
Claudius Heine edited comment on THRIFT-1522 at 7/3/15 8:04 AM: ---------------------------------------------------------------- I would say your assessment of the memory leak is correct. It is never deallocated when an exception is thrown or it has to open a Unix Domain Socket. The memory leak is present in the current commit in the master branch (5cf9d7744c41). IMO the best solution would be, to wrap getaddrinfo and freeaddrinfo into a class that calls the methods with its con/destructors. was (Author: cmhe): I would say your assessment of the memory leak is correct. It is never allocated when an exception is thrown or it has to open a Unix Domain Socket. The memory leak is present in the current commit in the master branch (5cf9d7744c41). IMO the best solution would be, to wrap getaddrinfo and freeaddrinfo into a class that calls the methods with its con/destructors. > TServerSocket potential memory leak with addrinfo *res0 > ------------------------------------------------------- > > Key: THRIFT-1522 > URL: https://issues.apache.org/jira/browse/THRIFT-1522 > Project: Thrift > Issue Type: Bug > Components: C++ - Library > Affects Versions: 0.8 > Environment: Unix, Windows > Reporter: Peace C > Priority: Minor > Labels: TServerSocket, leak, memory, thrift > Fix For: 1.0 > > > I noticed a potential memory leak in TServerSocket.cpp. The res0 pointer > receives an allocation from getaddrinfo() but is only freed part of the time > in a conditional branch. It should be outside of the if-else to ensure it's > deallocated every time. > I'm holding off on creating a patch in case I'm not understanding some hidden > functionality in the socket library. Here is the code snippet: > struct addrinfo *res0; > ... > getaddrinfo(NULL, port, &hints, &res0); > ... > if (! path_.empty()) > { ... } > else > { > ... > freeaddrinfo(res0); //Line 331 of TServerSocket.cpp > } -- This message was sent by Atlassian JIRA (v6.3.4#6332)