Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:56268 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 18738 invoked from network); 11 Nov 2011 03:15:04 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 11 Nov 2011 03:15:04 -0000 Authentication-Results: pb1.pair.com smtp.mail=ezyang@mit.edu; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=ezyang@MIT.EDU; sender-id=pass Received-SPF: pass (pb1.pair.com: domain mit.edu designates 18.9.25.13 as permitted sender) X-PHP-List-Original-Sender: ezyang@mit.edu X-Host-Fingerprint: 18.9.25.13 DMZ-MAILSEC-SCANNER-2.MIT.EDU Linux 2.6 Received: from [18.9.25.13] ([18.9.25.13:45374] helo=dmz-mailsec-scanner-2.mit.edu) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 52/16-17932-7339CBE4 for ; Thu, 10 Nov 2011 22:15:04 -0500 X-AuditID: 1209190d-b7f726d0000008d1-4f-4ebc93352fd5 Received: from mailhub-auth-1.mit.edu ( [18.9.21.35]) by dmz-mailsec-scanner-2.mit.edu (Symantec Messaging Gateway) with SMTP id 8A.6C.02257.5339CBE4; Thu, 10 Nov 2011 22:15:01 -0500 (EST) Received: from outgoing.mit.edu (OUTGOING-AUTH.MIT.EDU [18.7.22.103]) by mailhub-auth-1.mit.edu (8.13.8/8.9.2) with ESMTP id pAB3F1X9027333; Thu, 10 Nov 2011 22:15:01 -0500 Received: from localhost (EZYANG.MIT.EDU [18.243.1.50]) (authenticated bits=0) (User authenticated as ezyang@ATHENA.MIT.EDU) by outgoing.mit.edu (8.13.6/8.12.4) with ESMTP id pAB3F0je020815; Thu, 10 Nov 2011 22:15:00 -0500 (EST) Content-Type: text/plain; charset=UTF-8 Cc: internals To: Rasmus Lerdorf In-reply-to: <4EB8EAF1.3040104@lerdorf.com> References: <1320740449-sup-5688@ezyang> <4EB8EAF1.3040104@lerdorf.com> Date: Thu, 10 Nov 2011 22:14:59 -0500 Message-ID: <1320981061-sup-2803@ezyang> User-Agent: Sup/git Content-Transfer-Encoding: 8bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrBIsWRmVeSWpSXmKPExsUixCmqrGs6eY+fwYtuVYsDb7exWaxcvYTd gcmj93Cqx5N1a1gCmKK4bFJSczLLUov07RK4Ml6d289asJyr4sCHFvYGxmkcXYycHBICJhJ3 /y1nhrDFJC7cW88GYgsJ7GOUONbi3MXIBWRvYJS4e30VE4TzmVHiwst7QB0cHMwC6hLr5wmB NICY17o7WUFsYQEriTXnX4ANZQOKPzr2FCwuAmRfaT3IBGJzCmhLTJzWwwyxzF3i2Zl1YDaL gKrEn909jCA2r4CGxPPnEDWiAsIST440M0Pskpdo3jqbeQKjwCyEK2YhySxgZFrFKJuSW6Wb m5iZU5yarFucnJiXl1qka6SXm1mil5pSuokRHIqSvDsY3x1UOsQowMGoxMPL+We3nxBrYllx Ze4hRkkOJiVR3vcT9vgJ8SXlp1RmJBZnxBeV5qQWH2KU4GBWEuGVzQPK8aYkVlalFuXDpKQ5 WJTEeQt3OPgJCaQnlqRmp6YWpBbBZNU5OARWflzNKsWSl5+XqiTBO3ES0AzBotT01Iq0zJwS hEomDk6QPTxAe/aA1PAWFyTmFmemQ+RPMSpKifOuBkkIgCQySvPgemEJ5BWjONBXwrzNIFU8 wOQD1/0KaDAT0ODN7rtBBpckIqSkGhhN7vB9SDp/Yn95kMCjOTe/xK45+DztblJ21b27ibp7 xM0sLort5srZu/9YbNZ2oe47bxOvf6wsXGGkmZ3iyCYmfUrjXc35NiMdq/1/XCyZ5u+44vlX 8oupaZSD7TLH15KJszd5tZarqM3S//g0xvf4xPfquvbsQvyWWwNDrW8scNQO5d2w4rgSS3FG oqEWc1FxIgDEvhre+wIAAA== Subject: Re: [PHP-DEV] Load extensions for .user.ini files From: ezyang@MIT.EDU ("Edward Z. Yang") Here is the proposed patch (sans tests; we did our own manual testing on 32-bit and 64-bit, and had to fix an unrelated bug; will provide tests when you say so): http://web.mit.edu/~ezyang/Public/php-user-ini-extension.patch The change to zlist_clean is necessary because otherwise extension_lists can't be reused for the second round of extension appliations (since the head and tail pointers have garbage in them). You should probably take that fix regardless of what you think of the feature change. Edward Excerpts from Rasmus Lerdorf's message of Tue Nov 08 03:40:17 -0500 2011: > On 11/08/2011 12:23 AM, Edward Z. Yang wrote: > > Hello all, > > > > My team is interested in permitting .user.ini files to load > > extensions. We believe this to be a simple fix: add > > an invocation of php_ini_register_extensions to the end > > of sapi/cgi/cgi-main.c. > > > > I don't believe this steps on any invariants, since extensions > > can usually be loaded arbitrarily late. > > > > Let me know what the list thinks. I can submit a patch and tests > > if y'all decide it's a good idea. > > You are aware that these extensions can't be unloaded, right? So one > user loading an extension will potentially be stepping on another user > and breaking their code. > > -Rasmus