From: John Napiorkowski Date: Wed, 21 Sep 2016 10:24:40 +0000 (-0500) Subject: for people that do silly things X-Git-Tag: 5.90113~2^2 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=commitdiff_plain;h=be57189a849e35a77232113c0f4523009d865a78 for people that do silly things --- diff --git a/lib/Catalyst.pm b/lib/Catalyst.pm index e68e18c..a71f655 100644 --- a/lib/Catalyst.pm +++ b/lib/Catalyst.pm @@ -2490,6 +2490,7 @@ sub prepare { }; $c->log_request; + $c->{stash} = $c->stash; return $c; } diff --git a/t/evil_stash.t b/t/evil_stash.t new file mode 100644 index 0000000..e97a131 --- /dev/null +++ b/t/evil_stash.t @@ -0,0 +1,37 @@ +use warnings; +use strict; +use Test::More; + +{ + package MyApp::Controller::Root; + $INC{'MyApp/Controller/Root.pm'} = __FILE__; + + use base 'Catalyst::Controller'; + + sub root :Path('') Args(0) { + my ($self, $c) = @_; + $c->{stash}->{foo} = 'bar'; + $c->stash(baz=>'boor'); + $c->{stash}->{baz} = $c->stash->{baz} . 2; + + Test::More::is($c->stash->{foo}, 'bar'); + Test::More::is($c->stash->{baz}, 'boor2'); + Test::More::is($c->{stash}->{foo}, 'bar'); + Test::More::is($c->{stash}->{baz}, 'boor2'); + + $c->res->body('return'); + } + + package MyApp; + use Catalyst; + MyApp->setup; +} + +use HTTP::Request::Common; +use Catalyst::Test 'MyApp'; + +{ + ok my $res = request POST 'root/'; +} + +done_testing();