[LON-CAPA-cvs] cvs: loncom /xml Safe.pm

albertel lon-capa-cvs@mail.lon-capa.org
Tue, 22 Oct 2002 15:59:44 -0000


albertel		Tue Oct 22 11:59:44 2002 EDT

  Modified files:              
    /loncom/xml	Safe.pm 
  Log:
  - Hrrm, old one didn't let Apache::run::evaluate evaluate subroutines, but if @_ is set to something seems to work. No idea.
  
  
Index: loncom/xml/Safe.pm
diff -u loncom/xml/Safe.pm:1.4 loncom/xml/Safe.pm:1.5
--- loncom/xml/Safe.pm:1.4	Thu Oct 17 15:27:45 2002
+++ loncom/xml/Safe.pm	Tue Oct 22 11:59:44 2002
@@ -214,7 +214,7 @@
     # Create anon sub ref in root of compartment.
     # Uses a closure (on $expr) to pass in the code to be executed.
     # (eval on one line to keep line numbers as expected by caller)
-    my $evalcode = sprintf('package %s; sub { @_ = (); eval $__SAFE_LOCAL_expr; }', $root);
+    my $evalcode = sprintf('package %s; sub { @_ = (\'\'); eval $__SAFE_LOCAL_expr; }', $root);
     my $evalsub;
 
 	if ($strict) { use strict; $evalsub = eval $evalcode; }
@@ -228,7 +228,7 @@
     my $root = $obj->{Root};
 
     my $evalsub = eval
-	      sprintf('package %s; sub { @_ = (); do $file }', $root);
+	      sprintf('package %s; sub { @_ = (\'\'); do $file }', $root);
     return Opcode::_safe_call_sv($root, $obj->{Mask}, $evalsub);
 }