diff options
Diffstat (limited to 'doc/src')
-rw-r--r-- | doc/src/sgml/plperl.sgml | 21 | ||||
-rw-r--r-- | doc/src/sgml/release.sgml | 34 |
2 files changed, 51 insertions, 4 deletions
diff --git a/doc/src/sgml/plperl.sgml b/doc/src/sgml/plperl.sgml index b9668103ecd..a94163e7be6 100644 --- a/doc/src/sgml/plperl.sgml +++ b/doc/src/sgml/plperl.sgml @@ -1,4 +1,4 @@ -<!-- $PostgreSQL: pgsql/doc/src/sgml/plperl.sgml,v 2.58 2006/10/23 18:10:31 petere Exp $ --> +<!-- $PostgreSQL: pgsql/doc/src/sgml/plperl.sgml,v 2.59 2006/11/13 17:13:56 adunstan Exp $ --> <chapter id="plperl"> <title>PL/Perl - Perl Procedural Language</title> @@ -646,6 +646,25 @@ $$ LANGUAGE plperl; If the above function was created by a superuser using the language <literal>plperlu</>, execution would succeed. </para> + + <note> + <para> + For security reasons, to stop a leak of privileged operations from + <application>PL/PerlU</> to <application>PL/Perl</>, these two languages + have to run in separate instances of the Perl interpreter. If your + Perl installation has been appropriately compiled, this is not a problem. + However, not all installations are compiled with the requisite flags. + If <productname>PostgreSQL</> detects that this is the case then it will + not start a second interpreter, but instead create an error. In + consequence, in such an installation, you cannot use both + <application>PL/PerlU</> and <application>PL/Perl</> in the same backend + process. The remedy for this is to obtain a Perl installation created + with the appropriate flags, namely either <literal>usemultiplicity</> or + both <literal>usethreads</> and <literal>useithreads</>. + For more details,see the <literal>perlembed</> manual page. + </para> + </note> + </sect1> <sect1 id="plperl-triggers"> diff --git a/doc/src/sgml/release.sgml b/doc/src/sgml/release.sgml index 58b4eaf50b0..78a72cea008 100644 --- a/doc/src/sgml/release.sgml +++ b/doc/src/sgml/release.sgml @@ -1,4 +1,4 @@ -<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.482 2006/11/06 17:00:27 tgl Exp $ --> +<!-- $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.483 2006/11/13 17:13:56 adunstan Exp $ --> <!-- Typical markup: @@ -407,6 +407,21 @@ links to the main documentation. </para> </listitem> + <listitem> + <para> + Data can no longer be shared between a PL/Perl function and a + PL/PerlU function, and modules used by a /PerlU function are no + longer available to PL/Perl functions. + </para> + <para> + Some perl installations have not been compiled with the correct flags + to allow multiple interpreters to exist within a single process. + In this situation PL/Perl and PL/PerlU cannot both be used in a + single backend. The solution is to get a Perl installation which + supports multiple interpreters. (Andrew) + </para> + </listitem> + <listitem> <para> In <filename>contrib/xml2/</>, rename <function>xml_valid()</> to @@ -1743,8 +1758,21 @@ links to the main documentation. <para> Previously, it was lexical, which caused unexpected sharing violations. - </para> - </listitem> + </para> + </listitem> + + <listitem> + <para> + Run PL/Perl and PL/PerlU in separate interpreters, for security + reasons. + </para> + <para> + In consequence, they can no longer share data nor loaded modules. + Also, if Perl has not been compiled with the requisite flags to + allow multiple interpreters, only one of these lamguages can be used + in any given backend process. (Andrew) + </para> + </listitem> </itemizedlist> |