From patchwork Wed May 20 23:17:31 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Burgess X-Patchwork-Id: 6842 Received: (qmail 128010 invoked by alias); 20 May 2015 23:18:24 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 127923 invoked by uid 89); 20 May 2015 23:18:23 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-0.8 required=5.0 tests=AWL, BAYES_00, KAM_LAZY_DOMAIN_SECURITY, RCVD_IN_DNSWL_LOW autolearn=no version=3.3.2 X-HELO: mail-wi0-f170.google.com Received: from mail-wi0-f170.google.com (HELO mail-wi0-f170.google.com) (209.85.212.170) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Wed, 20 May 2015 23:18:22 +0000 Received: by wicmx19 with SMTP id mx19so2309685wic.0 for ; Wed, 20 May 2015 16:18:19 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=EFvfnYCCqWsdvAuSnvmX4X9SgTekVx1ij4ZxGGnCoAk=; b=EqspJCrPnw10LS0bXduvvtOmjUEayaPnIq/ccEWp9RydG0IW0UevCOBjIjl8m63uM9 9jadVZK+B4tH9g7A1QqkoiY2TuJ/E8iM5YykT0eRVQNlZeBW/nbIxnjptKdlPx0al5eq y5iMiBFp4k7fCVzFJ9U4Ps8LBbXeLEYo/9Ak17dhNrZrRwaeYcsrlndwOe5cvO0GPaZG o3x9BLr/Y5zrS7GrhJPWnzHzpuNIQ23rLBM9KYP06iFdysaX3qhCC3Uoabl+RJkkH5Qr TDLuXhunSnkcf94bFfWLbwTq2ni7dY+DLA88YyENGU+nH/6+5+NmvfrIpt3qdUgDCd2x DkrA== X-Gm-Message-State: ALoCoQlMcyNJq8foX48+yafjBWOP2elubDWKH/YVS3S4c56uWqrsFJWa27vsu3JUhiDEN/kU6rpV X-Received: by 10.181.13.232 with SMTP id fb8mr516360wid.78.1432163899382; Wed, 20 May 2015 16:18:19 -0700 (PDT) Received: from localhost ([46.189.28.200]) by mx.google.com with ESMTPSA id js3sm29124749wjc.5.2015.05.20.16.18.18 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 20 May 2015 16:18:18 -0700 (PDT) From: Andrew Burgess To: gdb-patches@sourceware.org Cc: Andrew Burgess Subject: [PATCH 4/4] gdb: Add cleanup to avoid memory leak on error. Date: Thu, 21 May 2015 01:17:31 +0200 Message-Id: In-Reply-To: References: In-Reply-To: References: X-IsSubscribed: yes Use cleanup to avoid leaking memory if an error occurs during tui start up. gdb/ChangeLog: * tui/tui-layout.c (tui_set_layout_for_display_command): Ensure buf_ptr is freed. --- gdb/ChangeLog | 5 +++++ gdb/tui/tui-layout.c | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 8ea1a5e..78e5654 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,10 @@ 2015-05-20 Andrew Burgess + * tui/tui-layout.c (tui_set_layout_for_display_command): Ensure + buf_ptr is freed. + +2015-05-20 Andrew Burgess + * tui/tui-layout.c (tui_layout_command): Move call to tui_enable into ... (tui_set_layout_for_display_command): ...here, before calling diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c index 2e950f7..0614b2c 100644 --- a/gdb/tui/tui-layout.c +++ b/gdb/tui/tui-layout.c @@ -426,10 +426,12 @@ tui_set_layout_for_display_command (const char *layout_name) char *buf_ptr; enum tui_layout_type new_layout = UNDEFINED_LAYOUT; enum tui_layout_type cur_layout = tui_current_layout (); + struct cleanup *old_chain; buf_ptr = (char *) xstrdup (layout_name); for (i = 0; (i < strlen (layout_name)); i++) buf_ptr[i] = toupper (buf_ptr[i]); + old_chain = make_cleanup (xfree, buf_ptr); /* First check for ambiguous input. */ if (strlen (buf_ptr) <= 1 && *buf_ptr == 'S') @@ -467,7 +469,7 @@ tui_set_layout_for_display_command (const char *layout_name) tui_set_layout (new_layout); } } - xfree (buf_ptr); + do_cleanups (old_chain); } else status = TUI_FAILURE;