- fix commit 3268: the jail_reval function must handle more cases
(references #630)
This commit is contained in:
parent
8439c0692b
commit
2408e9e4af
|
@ -277,7 +277,7 @@ sub forgeHeadersInit {
|
||||||
);
|
);
|
||||||
$self->safe( $jail->build_safe() );
|
$self->safe( $jail->build_safe() );
|
||||||
$forgeHeaders->{$alias} =
|
$forgeHeaders->{$alias} =
|
||||||
$jail->jail_reval( $sub );
|
$jail->jail_reval( "sub{$sub}" );
|
||||||
|
|
||||||
Lemonldap::NG::Handler::Main::Logger->lmLog(
|
Lemonldap::NG::Handler::Main::Logger->lmLog(
|
||||||
"$self: Unable to forge headers: $@: sub {$sub}", 'error' )
|
"$self: Unable to forge headers: $@: sub {$sub}", 'error' )
|
||||||
|
@ -475,7 +475,7 @@ sub conditionSub {
|
||||||
'customFunctions' => $self->customFunctions
|
'customFunctions' => $self->customFunctions
|
||||||
);
|
);
|
||||||
$self->safe( $jail->build_safe() );
|
$self->safe( $jail->build_safe() );
|
||||||
my $sub = $jail->jail_reval( $cond );
|
my $sub = $jail->jail_reval( "sub{return($cond)}" );
|
||||||
|
|
||||||
# Return sub and protected flag
|
# Return sub and protected flag
|
||||||
return ( $sub, 0 );
|
return ( $sub, 0 );
|
||||||
|
|
|
@ -119,10 +119,17 @@ sub share_from {
|
||||||
sub jail_reval {
|
sub jail_reval {
|
||||||
my ( $self, $reval ) = splice @_;
|
my ( $self, $reval ) = splice @_;
|
||||||
|
|
||||||
|
# if nothing is returned by reval, add the return statement to
|
||||||
|
# the "no safe wrap" reval
|
||||||
|
my $nosw_reval = $reval;
|
||||||
|
if ( $reval !~ /^sub\{return\(.*\}$/ ) {
|
||||||
|
$nosw_reval =~ s/^sub{(.*)}$/sub{return($1)}/
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
SAFEWRAP
|
SAFEWRAP
|
||||||
? $self->safe->wrap_code_ref( $self->safe->reval("sub{$reval}") )
|
? $self->safe->wrap_code_ref( $self->safe->reval($reval) )
|
||||||
: $self->safe->reval("sub{return($reval)}")
|
: $self->safe->reval($nosw_reval)
|
||||||
);
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user