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.
This commit is contained in:
Gary Benson 2018-10-11 10:19:26 +01:00
parent a9597defaf
commit fbe61a3661
3 changed files with 11 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2018-10-11 Gary Benson <gbenson@redhat.com>
* interps.h (interp::m_name): Make private and mutable.
* interps.c (interp::~interp): Free m_name.
2018-10-10 Sergio Durigan Junior <sergiodj@redhat.com>
Simon Marchi <simark@simark.ca>

View File

@ -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. */

View File

@ -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? */