From: Gary Benson Date: Thu, 11 Oct 2018 09:19:26 +0000 (+0100) Subject: Fix interp::m_name resource leak found by Coverity X-Git-Url: http://git.efficios.com/?a=commitdiff_plain;h=fbe61a3661b083a666e6550b3b0c2de364e6d4a6;p=deliverable%2Fbinutils-gdb.git Fix interp::m_name resource leak found by Coverity This commit fixes a resource leak found by Coverity, where interp's constructor allocated memory for m_name that interp's destructor did not free. gdb/ChangeLog: * interps.h (interp::m_name): Make private and mutable. * interps.c (interp::~interp): Free m_name. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index e28b464f20..b3cc64659f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2018-10-11 Gary Benson + + * interps.h (interp::m_name): Make private and mutable. + * interps.c (interp::~interp): Free m_name. + 2018-10-10 Sergio Durigan Junior Simon Marchi diff --git a/gdb/interps.c b/gdb/interps.c index 6fe4c74e93..883e0426a3 100644 --- a/gdb/interps.c +++ b/gdb/interps.c @@ -84,7 +84,9 @@ interp::interp (const char *name) } interp::~interp () -{} +{ + xfree (m_name); +} /* An interpreter factory. Maps an interpreter name to the factory function that instantiates an interpreter by that name. */ diff --git a/gdb/interps.h b/gdb/interps.h index 74c9a80918..dbf91f18e8 100644 --- a/gdb/interps.h +++ b/gdb/interps.h @@ -80,10 +80,12 @@ public: } /* This is the name in "-i=" and "set interpreter". */ - const char *m_name; +private: + char *m_name; /* Interpreters are stored in a linked list, this is the next one... */ +public: struct interp *next; /* Has the init method been run? */