From a0f8e913841203e42d207010571e1f7ac3131108 Mon Sep 17 00:00:00 2001 From: Austin Clements Date: Sun, 23 Sep 2012 12:19:08 +2000 Subject: [PATCH] Re: [PATCH 2/2] Avoid potentially dereferencing a NULL pointer --- 2a/13f03ca4cd12731ef32907e76ef2f7c13afef2 | 113 ++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 2a/13f03ca4cd12731ef32907e76ef2f7c13afef2 diff --git a/2a/13f03ca4cd12731ef32907e76ef2f7c13afef2 b/2a/13f03ca4cd12731ef32907e76ef2f7c13afef2 new file mode 100644 index 000000000..3e86b4806 --- /dev/null +++ b/2a/13f03ca4cd12731ef32907e76ef2f7c13afef2 @@ -0,0 +1,113 @@ +Return-Path: +X-Original-To: notmuch@notmuchmail.org +Delivered-To: notmuch@notmuchmail.org +Received: from localhost (localhost [127.0.0.1]) + by olra.theworths.org (Postfix) with ESMTP id 1389C431FAE + for ; Sat, 22 Sep 2012 09:19:13 -0700 (PDT) +X-Virus-Scanned: Debian amavisd-new at olra.theworths.org +X-Spam-Flag: NO +X-Spam-Score: -0.7 +X-Spam-Level: +X-Spam-Status: No, score=-0.7 tagged_above=-999 required=5 + tests=[RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled +Received: from olra.theworths.org ([127.0.0.1]) + by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id nIjdiJOLFgyU for ; + Sat, 22 Sep 2012 09:19:12 -0700 (PDT) +Received: from dmz-mailsec-scanner-6.mit.edu (DMZ-MAILSEC-SCANNER-6.MIT.EDU + [18.7.68.35]) + by olra.theworths.org (Postfix) with ESMTP id 68BAD431FAF + for ; Sat, 22 Sep 2012 09:19:12 -0700 (PDT) +X-AuditID: 12074423-b7fab6d0000008f9-15-505de4ffa9d9 +Received: from mailhub-auth-2.mit.edu ( [18.7.62.36]) + by dmz-mailsec-scanner-6.mit.edu (Symantec Messaging Gateway) with SMTP + id A1.90.02297.FF4ED505; Sat, 22 Sep 2012 12:19:11 -0400 (EDT) +Received: from outgoing.mit.edu (OUTGOING-AUTH.MIT.EDU [18.7.22.103]) + by mailhub-auth-2.mit.edu (8.13.8/8.9.2) with ESMTP id q8MGJAbi027804; + Sat, 22 Sep 2012 12:19:11 -0400 +Received: from awakening.csail.mit.edu (awakening.csail.mit.edu [18.26.4.91]) + (authenticated bits=0) + (User authenticated as amdragon@ATHENA.MIT.EDU) + by outgoing.mit.edu (8.13.6/8.12.4) with ESMTP id q8MGJ91m003634 + (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NOT); + Sat, 22 Sep 2012 12:19:10 -0400 (EDT) +Received: from amthrax by awakening.csail.mit.edu with local (Exim 4.77) + (envelope-from ) + id 1TFSQ9-0005TK-1i; Sat, 22 Sep 2012 12:19:09 -0400 +Date: Sat, 22 Sep 2012 12:19:08 -0400 +From: Austin Clements +To: Justus Winter <4winter@informatik.uni-hamburg.de> +Subject: Re: [PATCH 2/2] Avoid potentially dereferencing a NULL pointer +Message-ID: <20120922161908.GF26662@mit.edu> +References: + <1348231837-21700-1-git-send-email-4winter@informatik.uni-hamburg.de> + <1348231837-21700-2-git-send-email-4winter@informatik.uni-hamburg.de> +MIME-Version: 1.0 +Content-Type: text/plain; charset=us-ascii +Content-Disposition: inline +In-Reply-To: + <1348231837-21700-2-git-send-email-4winter@informatik.uni-hamburg.de> +User-Agent: Mutt/1.5.21 (2010-09-15) +X-Brightmail-Tracker: + H4sIAAAAAAAAA+NgFmphleLIzCtJLcpLzFFi42IRYrdT0f3/JDbA4NsUK4vZrT+YLK7fnMns + wOQx8fxpNo9nq24xBzBFcdmkpOZklqUW6dslcGXMev6BvWAlZ8Wp1suMDYzL2bsYOTkkBEwk + 9u6/xQJhi0lcuLeerYuRi0NIYB+jxPljVxkhnA2MEj/3bIZyTjJJdPy6ygLhLGGU2HRmG1AP + BweLgKpE43IpkFFsAhoS2/YvZwSxRQRMJTY8eAC2jllAWuLb72YmEFtYwF3i4I1zYDW8AjoS + 95qWQy2YySix8uMJFoiEoMTJmU9YIJq1JG78e8kEsgtk0PJ/HCBhToEgiTNHLrOB2KICKhJT + Tm5jm8AoNAtJ9ywk3bMQuhcwMq9ilE3JrdLNTczMKU5N1i1OTszLSy3SNdPLzSzRS00p3cQI + DmwX5R2Mfw4qHWIU4GBU4uHdMDkmQIg1say4MvcQoyQHk5Iob/fj2AAhvqT8lMqMxOKM+KLS + nNTiQ4wSHMxKIrzmJ4FyvCmJlVWpRfkwKWkOFiVx3mspN/2FBNITS1KzU1MLUotgsjIcHEoS + vAHACBYSLEpNT61Iy8wpQUgzcXCCDOcBGm4NUsNbXJCYW5yZDpE/xagoJc4bBZIQAElklObB + 9cISzytGcaBXhHk9Qap4gEkLrvsV0GAmoMFvrkeBDC5JREhJNTAqC58WujB3+/WDIjvWBj6U + PMRU80Hj9YYHi9XmJra+brp64Xes/7RowcOKHNb8fs8+/znfwVB5y8SyO2OZlo+9XpTnl57F + rm0c/vcDr9nNcp7ysXL2HumXmx71nerVUNwoqPHq6BkrnjWGFxjm6jGVR85zs3op9tFR7mD4 + FLb3oTPWPdjFtkhfiaU4I9FQi7moOBEAH/LmEBcDAAA= +Cc: notmuch@notmuchmail.org +X-BeenThere: notmuch@notmuchmail.org +X-Mailman-Version: 2.1.13 +Precedence: list +List-Id: "Use and development of the notmuch mail system." + +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +X-List-Received-Date: Sat, 22 Sep 2012 16:19:13 -0000 + +Quoth Justus Winter on Sep 21 at 2:50 pm: +> GMIME_IS_MULTIPART and GMIME_IS_MESSAGE both handle NULL pointers +> gracefully, but the G_OBJECT_TYPE used in the error handling block +> dereferences it without checking it first. +> +> Fix this by checking whether parent->part is valid. +> +> Found using the clang static analyzer. + +Neat. + +Can this actually happen, though? If so, I think this point is too +late to be checking for a NULL part field. It should probably be +checked when the mime_node_t is created so that mime_node_t never has +a NULL part field. + +> Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de> +> --- +> mime-node.c | 2 +- +> 1 file changed, 1 insertion(+), 1 deletion(-) +> +> diff --git a/mime-node.c b/mime-node.c +> index 97e8b48..839737a 100644 +> --- a/mime-node.c +> +++ b/mime-node.c +> @@ -291,7 +291,7 @@ mime_node_child (mime_node_t *parent, int child) +> GMimeObject *sub; +> mime_node_t *node; +> +> - if (!parent || child < 0 || child >= parent->nchildren) +> + if (!parent || !parent->part || child < 0 || child >= parent->nchildren) +> return NULL; +> +> if (GMIME_IS_MULTIPART (parent->part)) { -- 2.26.2