From commits-return-13504-archive-asf-public=cust-asf.ponee.io@pdfbox.apache.org Thu Nov 8 18:21:55 2018 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx-eu-01.ponee.io (Postfix) with SMTP id DEA93180671 for ; Thu, 8 Nov 2018 18:21:54 +0100 (CET) Received: (qmail 93695 invoked by uid 500); 8 Nov 2018 17:21:54 -0000 Mailing-List: contact commits-help@pdfbox.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@pdfbox.apache.org Delivered-To: mailing list commits@pdfbox.apache.org Received: (qmail 93686 invoked by uid 99); 8 Nov 2018 17:21:53 -0000 Received: from Unknown (HELO svn01-us-west.apache.org) (209.188.14.144) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 08 Nov 2018 17:21:53 +0000 Received: from svn01-us-west.apache.org (localhost [127.0.0.1]) by svn01-us-west.apache.org (ASF Mail Server at svn01-us-west.apache.org) with ESMTP id 5D0683A082A for ; Thu, 8 Nov 2018 17:21:53 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1846172 - /pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectForm.java Date: Thu, 08 Nov 2018 17:21:52 -0000 To: commits@pdfbox.apache.org From: tilman@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20181108172153.5D0683A082A@svn01-us-west.apache.org> Author: tilman Date: Thu Nov 8 17:21:52 2018 New Revision: 1846172 URL: http://svn.apache.org/viewvc?rev=1846172&view=rev Log: PDFBOX-4372: return empty resources if resource key does exist but doesn't contain a dictionary, to avoid stack overflow when form contains reference to form with its own name Modified: pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectForm.java Modified: pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectForm.java URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectForm.java?rev=1846172&r1=1846171&r2=1846172&view=diff ============================================================================== --- pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectForm.java (original) +++ pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectForm.java Thu Nov 8 17:21:52 2018 @@ -94,10 +94,17 @@ public class PDXObjectForm extends PDXOb public PDResources getResources() { PDResources retval = null; - COSDictionary resources = (COSDictionary) getCOSStream().getDictionaryObject(COSName.RESOURCES); - if (resources != null) + COSBase base = getCOSStream().getDictionaryObject(COSName.RESOURCES); + if (base instanceof COSDictionary) { - retval = new PDResources(resources); + retval = new PDResources((COSDictionary) base); + } + else if (getCOSStream().containsKey(COSName.RESOURCES)) + { + // PDFBOX-4372 if the resource key exists but has nothing, return empty resources, + // to avoid a self-reference (xobject form Fm0 contains "/Fm0 Do") + // See also the mention of PDFBOX-1359 in PDFStreamEngine + retval = new PDResources(); } return retval; }