Fix cli_interp::cli_uiout resource leak found by Coverity
authorGary Benson <gbenson@redhat.com>
Fri, 19 Oct 2018 10:51:41 +0000 (11:51 +0100)
committerGary Benson <gbenson@redhat.com>
Fri, 19 Oct 2018 10:52:33 +0000 (11:52 +0100)
This commit fixes a resource leak found by Coverity, where cli_interp's
constructor creates a new cli_ui_out, but there was no corresponding
destructor to free it.

gdb/ChangeLog:

* cli/cli-interp.c (cli_interp::~cli_interp): New function.

gdb/ChangeLog
gdb/cli/cli-interp.c

index e177cf28caeefe7588cbdff6c1d158fe3a65bbf9..d32cfd0c94f7b0ccfc63f800d77ca8fe24447706 100644 (file)
@@ -1,3 +1,7 @@
+2018-10-19  Gary Benson <gbenson@redhat.com>
+
+       * cli/cli-interp.c (cli_interp::~cli_interp): New function.
+
 2018-10-18  Sergio Durigan Junior  <sergiodj@redhat.com>
 
        PR cli/23785
index 2aa41d6c8b118c1341881eba177a31c9d1be7dc3..75d80933c99b2a9fc2b72f98bf801f8ae999b774 100644 (file)
@@ -44,6 +44,7 @@ class cli_interp final : public cli_interp_base
 {
  public:
   explicit cli_interp (const char *name);
+  ~cli_interp ();
 
   void init (bool top_level) override;
   void resume () override;
@@ -62,6 +63,11 @@ cli_interp::cli_interp (const char *name)
   this->cli_uiout = cli_out_new (gdb_stdout);
 }
 
+cli_interp::~cli_interp ()
+{
+  delete cli_uiout;
+}
+
 /* Suppress notification struct.  */
 struct cli_suppress_notification cli_suppress_notification =
   {