]> granicus.if.org Git - postgresql/commitdiff
Adjust safety restrictions for plperl functions. Andrew Dunstan's
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 16 Nov 2004 22:05:22 +0000 (22:05 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 16 Nov 2004 22:05:22 +0000 (22:05 +0000)
patch, but allow srand and disallow sprintf as per subsequent discussion.

src/pl/plperl/plperl.c

index 3e3e4cc5ee77c5895789291585c61be64d391a58..8800fb4f64918dcccd4c86a2c4006fe14a7bea4b 100644 (file)
@@ -33,7 +33,7 @@
  *       ENHANCEMENTS, OR MODIFICATIONS.
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/pl/plperl/plperl.c,v 1.55 2004/10/15 17:08:26 momjian Exp $
+ *       $PostgreSQL: pgsql/src/pl/plperl/plperl.c,v 1.56 2004/11/16 22:05:22 tgl Exp $
  *
  **********************************************************************/
 
@@ -250,17 +250,20 @@ plperl_safe_init(void)
 
        static char *safe_ok =
        "use vars qw($PLContainer); $PLContainer = new Safe('PLPerl');"
-       "$PLContainer->permit_only(':default');$PLContainer->permit(':base_math');"
-       "$PLContainer->share(qw[&elog &spi_exec_query &DEBUG &LOG &INFO &NOTICE &WARNING &ERROR %SHARED ]);"
+       "$PLContainer->permit_only(':default');"
+       "$PLContainer->permit(qw[:base_math !:base_io sort time]);"
+       "$PLContainer->share(qw[&elog &spi_exec_query &DEBUG &LOG "
+    "&INFO &NOTICE &WARNING &ERROR %SHARED ]);"
        "sub ::mksafefunc { return $PLContainer->reval(qq[sub { $_[0] $_[1]}]); }"
                           ;
 
        static char *safe_bad =
        "use vars qw($PLContainer); $PLContainer = new Safe('PLPerl');"
-       "$PLContainer->permit_only(':default');$PLContainer->permit(':base_math');"
-       "$PLContainer->share(qw[&elog &DEBUG &LOG &INFO &NOTICE &WARNING &ERROR %SHARED ]);"
+       "$PLContainer->permit_only(':default');"
+       "$PLContainer->share(qw[&elog &ERROR ]);"
        "sub ::mksafefunc { return $PLContainer->reval(qq[sub { "
-       "elog(ERROR,'trusted perl functions disabled - please upgrade perl Safe module to at least 2.09');}]); }"
+       "elog(ERROR,'trusted perl functions disabled - "
+    "please upgrade perl Safe module to at least 2.09');}]); }"
                           ;
 
        SV                 *res;