Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wVMZ4-001uJU-2D for pgsql-hackers@arkaria.postgresql.org; Fri, 05 Jun 2026 04:53:50 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wVMZ3-00AAaD-1c for pgsql-hackers@arkaria.postgresql.org; Fri, 05 Jun 2026 04:53:49 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wVMZ2-00AAZt-2P for pgsql-hackers@lists.postgresql.org; Fri, 05 Jun 2026 04:53:49 +0000 Received: from fout-b8-smtp.messagingengine.com ([202.12.124.151]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1wVMYz-00000001MRm-3gDG for pgsql-hackers@lists.postgresql.org; Fri, 05 Jun 2026 04:53:48 +0000 Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42]) by mailfout.stl.internal (Postfix) with ESMTP id 8C5E41D0007F; Fri, 5 Jun 2026 00:53:42 -0400 (EDT) Received: from phl-frontend-03 ([10.202.2.162]) by phl-compute-02.internal (MEProxy); Fri, 05 Jun 2026 00:53:42 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paquier.xyz; h= cc:cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm1; t=1780635222; x=1780721622; bh=Cd+I443kL3 chuEcq/APmqoXrzKBVc5mEZwo/xk54Tkc=; b=YlL/wh3ySEs9zYjyJoFzwcddeQ dzuk2X+y3Ztf2bH0zVkRmtpvEnYuLosW6dwbi6/GBDYGYB9lBACFCNS0buSTXXub IZT9Gw6KEWOmZpyTSTBuyQAOKFDXVAZf7SbUuaMAbAp7GMK40D0Nf4pdze6nXe+K 6/NjzmOG+ThqNe2zB2DKexjAA99WSvRa0Lo8WTLsq/7WdYb+PxGPjmo9R8t6RNwJ s2l/h6We5HAOZ3M2WhNmdxLuILa6TY5/XcF95Go68vq9YwHs+3QVvlLhUSmnQhm8 woSslvJi3YO8bsFD1vJdnMU3XV+daWTDIM/OIUttsCIElRqLh9zgXI88pH2w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t= 1780635222; x=1780721622; bh=Cd+I443kL3chuEcq/APmqoXrzKBVc5mEZwo /xk54Tkc=; b=OBImK2gtRvGEr9rJq+IEfnyrqKrDLLzDE7UAU8pTljRB/U0cKxk X+J0yKerwhMTpoeSOAVTWENWEHjNGutcoWBosBN7rmZXleQXc5/eA24nhyG88Qdq 6b3F/pZgDjLLFsq3dN2Bm9AT7jbp0plfEXFHZV/rclL+mSnI7GAOZLZIU898Bc6O dJJXjahnzy0nyuyXN5uQSo2pyz6LmhvEbQI1Yw7AiMieeBVijKnTBNRQh6LvXSOq GWlQ4Qf+DVRoa91X4OyY2gVP//dHsuscRyhamCurvTN7JG/iq6Dw5j0DSncdxfM8 apnVop8EgZzQpbAS/90RzMjHZIFdk+PAFRA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTFRRGiMabrVxpkLor2Ghk6Tm/xaMte1JQLyFA+JuydKqKcjT3xts3VzXTGowIxqG4 QAomUQikGShztDkmP4arAicXhZApB2nch+f/IGgEECnH1UNC0t+TU8MOSLCTS3dT6eZ2D7 8LRRoO49B2CtsqGwRQ/rilLbNcYrShE+nR+7grfSRog3RUR0rS3/LhM7y4gKr75p0m6SAf qj/oN7KY6fYbkQsFq6UBUkMul1QRb8e99Nm5LPytMmCllQq3smyv3IpO4Ge0w1jSMHa8At PrpxiZLQPv5yHoCReOurPEoUtazFYxYm0s/t0zqdXmVlwGVrP89CtAZia/lu5YDCZEWHMu lXjc17tR5QQ2V/89ABkpb0U/4+tZvm9wo6wOoZPWKQflInaM8xt0ofXkh+w6imr0FRfreC Tp8d1xc6/NjJJyzmyphLWaZlPAz+G3kfFtwVYe0mM+5YBQTDW6jmilZRV2W/FBKq/jI1YS b4CUw/YmaCnk4GGL+z69lm5/Y8Td8bN2AA9CFm1PKo/sGvQvPXnyrbaTZT6LJHUGfoqDWk P56ytoDp+NVJGdwyfqHCKx1uLKsgOLdOErgiPdqw+OdlzESFtyIjsNHQAXW57fbIjWJb5a 25TEZh8h+x5ypjhxeqBOD7Csnvud32KMY8FiqhLapJ5HWGEAijAdOgtGKUYQ X-ME-Proxy: Feedback-ID: i0fe9450f:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 5 Jun 2026 00:53:40 -0400 (EDT) Date: Fri, 5 Jun 2026 13:53:36 +0900 From: Michael Paquier To: Andrey Chernyy Cc: pgsql-hackers@lists.postgresql.org Subject: Re: [PATCH] xml2: Fix stylesheet document leak in xslt_process() Message-ID: References: <20260605024642.5a1b6518@andrnote> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="UZpbqIp4qtydEHcF" Content-Disposition: inline In-Reply-To: <20260605024642.5a1b6518@andrnote> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --UZpbqIp4qtydEHcF Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Fri, Jun 05, 2026 at 02:46:42AM +0300, Andrey Chernyy wrote: > xslt_process() parses the stylesheet argument with xmlReadMemory(), then > passes the resulting xmlDoc to xsltParseStylesheetDoc(). On failure, > libxslt leaves that document owned by the caller, as can be seen from > its own xsltParseStylesheetFile() wrapper. Postgres currently cannot > release it in the error cleanup path because ssdoc is scoped inside the > PG_TRY block. In libxslt/xslt.c, the top comment of xsltParseStylesheetDoc() says: "the doc is automatically freed when the stylesheet is closed." Reading the code, I can confirm that xsltFreeStylesheet() does a bunch of stuff, and that it has the idea to call xmlFreeDoc() once at the end. Will address this one as well. Thanks. -- Michael --UZpbqIp4qtydEHcF Content-Type: application/pgp-signature; name=signature.asc -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEG72nH6vTowiyblFKnvQgOdbyQH0FAmoiVlAACgkQnvQgOdby QH1K7BAAgvRRQqJbecOgQ6tmnNEaC5foUNLUOP/VI8fmwKaT863Dbkq6qSs/kZM0 Ch/lSmFOC4nsWhgP+Tbjjyi8OLZH5wVKXr8Y+oA/hADWUr5iS2IZvnQeJGcYlwbe ivjQzcQag7IoyynYPU8uQIWYcaQMgjhAjF5qdZnC54/SOTluHzlrLBd3AjRiGSgk 07iuvdMgcYGCqY76dE/QqPsjCmI94jIZx1iRamwGrcW0sU9biii/ZXYmleO1HsS5 UzwE5FpUTrD8bbwc6QZQeGD6eMjXn4zRHZnx3JER9vONPaTVyxFkP0yTpf4nNJEX 8Ux8MAvhMuS5Z/sLepO0qrw3ggwLjiHA1LpoWM66hmbykKW9LDGtmiHTyP05ZfSN xai2Umngb6ufbzuR1EULPq3j3TlvXSqgCRNF87IaaBr4Y9/BRT4JR3MRNMre0mOj h1CA4nPbNoJKLw1w6SF4XmaXinkz7mUUDuKc/LdDZm61WvEif+thBpq2gG0kxgha qOKQA+HfdqumiR2PuXwXpCEnVdJ3XgZHhXZpfe29fgNj/Sz14CnqMm4bv8S87h3C Qt0exJ8Dn+/WnaLg2Hp7PezI5s5J3fJ5cFDIl59mIWrPb4q9sv8OVpdDw71hETnu boxvaGUxZzB3vEdlsjnj6u40GOc4bGF5WHEtWwhn53hY7LUoHTs= =eLiF -----END PGP SIGNATURE----- --UZpbqIp4qtydEHcF--