From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31998 invoked by alias); 19 Apr 2013 14:28:40 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 31985 invoked by uid 89); 19 Apr 2013 14:28:40 -0000 X-Spam-SWARE-Status: No, score=-6.8 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,RCVD_IN_DNSWL_HI,RCVD_IN_HOSTKARMA_W,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=ham version=3.3.1 Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Fri, 19 Apr 2013 14:28:39 +0000 Received: from int-mx12.intmail.prod.int.phx2.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r3JEScoS011678 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Fri, 19 Apr 2013 10:28:38 -0400 Received: from barimba (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx12.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id r3JESb4s029712 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Fri, 19 Apr 2013 10:28:38 -0400 From: Tom Tromey To: gdb-patches@sourceware.org Subject: [PATCH 03/28] PyObject_GetAttrString returns a new ref References: <87ehe638ww.fsf@fleche.redhat.com> Date: Fri, 19 Apr 2013 14:36:00 -0000 In-Reply-To: <87ehe638ww.fsf@fleche.redhat.com> (Tom Tromey's message of "Fri, 19 Apr 2013 08:13:51 -0600") Message-ID: <87obda1tnu.fsf@fleche.redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SW-Source: 2013-04/txt/msg00586.txt.bz2 This fixes a bug in py-function.c pointed out by the checker. PyObject_GetAttrString returns a new ref, so we must decref it. --- gdb/python/py-function.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/gdb/python/py-function.c b/gdb/python/py-function.c index e2ba19f..395eeda 100644 --- a/gdb/python/py-function.c +++ b/gdb/python/py-function.c @@ -175,14 +175,20 @@ fnpy_init (PyObject *self, PyObject *args, PyObject *kwds) if (PyObject_HasAttrString (self, "__doc__")) { PyObject *ds_obj = PyObject_GetAttrString (self, "__doc__"); - if (ds_obj && gdbpy_is_string (ds_obj)) + if (ds_obj != NULL) { - docstring = python_string_to_host_string (ds_obj); - if (docstring == NULL) + if (gdbpy_is_string (ds_obj)) { - Py_DECREF (self); - return -1; + docstring = python_string_to_host_string (ds_obj); + if (docstring == NULL) + { + Py_DECREF (self); + Py_DECREF (ds_obj); + return -1; + } } + + Py_DECREF (ds_obj); } } if (! docstring) -- 1.8.1.4