<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.E-MailFormatvorlage17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=DE link=blue vlink=purple><div class=WordSection1><p class=MsoNormal>Hi,<o:p></o:p></p><p class=MsoNormal>i&#8217;ve found a bug in CatalystX::I18N::Role::GetLocale when using the function<o:p></o:p></p><p class=MsoNormal>$c-&gt;get_locale();<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>If you set the User-Agent manually to something invalid with two words, separated with a minus, the whole Server crashes.<o:p></o:p></p><p class=MsoNormal>Eg. use <a href="http://www.rexswain.com/httpview.html">http://www.rexswain.com/httpview.html</a> and set User-Agent to &#8222;hidden-agent&#8220; and connect to a Server which is using get_locale(), Catalyst crashes with an error (see below).<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>Could you help me correcting the bug?<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>Thanks<o:p></o:p></p><p class=MsoNormal>Stefan<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><div style='border-top:solid windowtext 1.0pt;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:none;padding:1.0pt 0cm 1.0pt 0cm'><p class=MsoNormal>Error Output:<o:p></o:p></p></div><p class=MsoNormal>Caught exception in MyApp::Controller::Root-&gt;auto &quot;Attribute (browser_language) does not pass the type constraint because: Validation failed for 'Maybe[CatalystX::I18N::Type::Language]' with value nagios at accessor Moose::Meta::Class::__ANON__::SERIAL::19::browser_language (defined at /usr/local/share/perl/5.10.1/CatalystX/I18N/TraitFor/Request.pm line 20) line 18<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Moose::Meta::Class::__ANON__::SERIAL::19::browser_language('Moose::Meta::Class::__ANON__::SERIAL::19=HASH(0x1b1b5508)') called at /usr/local/share/perl/5.10.1/CatalystX/I18N/Role/GetLocale.pm line 74<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CatalystX::I18N::Role::GetLocale::get_locale_from_browser('MyApp=HASH(0x1ae79638)') called at /usr/local/share/perl/5.10.1/CatalystX/I18N/Role/GetLocale.pm line 153<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CatalystX::I18N::Role::GetLocale::get_locale('MyApp=HASH(0x1ae79638)') called at /home/stefan/MyApp/script/../lib/MyApp/Controller/Root.pm line 48<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MyApp::Controller::Root::auto('MyApp::Controller::Root=HASH(0x1af57148)', 'MyApp=HASH(0x1ae79638)') called at /usr/local/share/perl/5.10.1/Catalyst/Action.pm line 65<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catalyst::Action::execute('Catalyst::Action=HASH(0x1b07ee68)', 'MyApp::Controller::Root=HASH(0x1af57148)', 'MyApp=HASH(0x1ae79638)') called at /usr/local/share/perl/5.10.1/Catalyst.pm line 1668<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eval {...} called at /usr/local/share/perl/5.10.1/Catalyst.pm line 1668<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catalyst::execute('MyApp=HASH(0x1ae79638)', 'MyApp::Controller::Root', 'Catalyst::Action=HASH(0x1b07ee68)') called at /usr/local/share/perl/5.10.1/Catalyst/Action.pm line 60<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catalyst::Action::dispatch('Catalyst::Action=HASH(0x1b07ee68)', 'MyApp=HASH(0x1ae79638)') called at /usr/local/share/perl/5.10.1/Catalyst/Controller.pm line 117<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catalyst::Controller::_AUTO('MyApp::Controller::Root=HASH(0x1af57148)', 'MyApp=HASH(0x1ae79638)') called at /usr/local/share/perl/5.10.1/Catalyst/Action.pm line 65<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catalyst::Action::execute('Catalyst::Action=HASH(0x1b07cf58)', 'MyApp::Controller::Root=HASH(0x1af57148)', 'MyApp=HASH(0x1ae79638)') called at /usr/local/share/perl/5.10.1/Catalyst.pm line 1668<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eval {...} called at /usr/local/share/perl/5.10.1/Catalyst.pm line 1668<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catalyst::execute('MyApp=HASH(0x1ae79638)', 'MyApp::Controller::Root', 'Catalyst::Action=HASH(0x1b07cf58)') called at /usr/local/share/perl/5.10.1/Catalyst/Action.pm line 60<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catalyst::Action::dispatch('Catalyst::Action=HASH(0x1b07cf58)', 'MyApp=HASH(0x1ae79638)') called at /usr/local/share/perl/5.10.1/Catalyst/Dispatcher.pm line 257<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catalyst::Dispatcher::_do_forward('Catalyst::Dispatcher=HASH(0x19ede418)', 'forward', 'MyApp=HASH(0x1ae79638)', '_AUTO') called at /usr/local/share/perl/5.10.1/Catalyst/Dispatcher.pm line 237<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catalyst::Dispatcher::forward('Catalyst::Dispatcher=HASH(0x19ede418)', 'MyApp=HASH(0x1ae79638)', '_AUTO') called at /usr/local/share/perl/5.10.1/Catalyst.pm line 377<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catalyst::forward('MyApp=HASH(0x1ae79638)', '_AUTO') called at /usr/local/share/perl/5.10.1/Catalyst/Controller.pm line 99<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catalyst::Controller::_DISPATCH('MyApp::Controller::Root=HASH(0x1af57148)', 'MyApp=HASH(0x1ae79638)') called at /usr/local/share/perl/5.10.1/Catalyst/Action.pm line 65<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catalyst::Action::execute('Catalyst::Action=HASH(0x1b06c4e0)', 'MyApp::Controller::Root=HASH(0x1af57148)', 'MyApp=HASH(0x1ae79638)') called at /usr/local/share/perl/5.10.1/Catalyst.pm line 1668<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eval {...} called at /usr/local/share/perl/5.10.1/Catalyst.pm line 1668<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catalyst::execute('MyApp=HASH(0x1ae79638)', 'MyApp::Controller::Root', 'Catalyst::Action=HASH(0x1b06c4e0)') called at /usr/local/share/perl/5.10.1/Catalyst/Action.pm line 60<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catalyst::Action::dispatch('Catalyst::Action=HASH(0x1b06c4e0)', 'MyApp=HASH(0x1ae79638)') called at /usr/local/share/perl/5.10.1/Catalyst/Dispatcher.pm line 257<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catalyst::Dispatcher::_do_forward('Catalyst::Dispatcher=HASH(0x19ede418)', 'forward', 'MyApp=HASH(0x1ae79638)', '//_DISPATCH') called at /usr/local/share/perl/5.10.1/Catalyst/Dispatcher.pm line 237<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catalyst::Dispatcher::forward('Catalyst::Dispatcher=HASH(0x19ede418)', 'MyApp=HASH(0x1ae79638)', '//_DISPATCH') called at /usr/local/share/perl/5.10.1/Catalyst.pm line 377<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catalyst::forward('MyApp=HASH(0x1ae79638)', '//_DISPATCH') called at /usr/local/share/perl/5.10.1/Catalyst/Dispatcher.pm line 105<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catalyst::Dispatcher::dispatch('Catalyst::Dispatcher=HASH(0x19ede418)', 'MyApp=HASH(0x1ae79638)') called at /usr/local/share/perl/5.10.1/Catalyst.pm line 1614<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catalyst::dispatch('MyApp=HASH(0x1ae79638)') called at /usr/local/share/perl/5.10.1/Catalyst/Plugin/Static/Simple.pm line 76<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Class::MOP::Class:::around('CODE(0x198cf630)', 'MyApp=HASH(0x1ae79638)') called at /usr/local/lib/perl/5.10.1/Class/MOP/Method/Wrapped.pm line 162<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Class::MOP::Method::Wrapped::__ANON__('MyApp=HASH(0x1ae79638)') called at /usr/local/lib/perl/5.10.1/Class/MOP/Method/Wrapped.pm line 91<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MyApp::dispatch('MyApp=HASH(0x1ae79638)') called at /usr/local/share/perl/5.10.1/Catalyst.pm line 1955<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eval {...} called at /usr/local/share/perl/5.10.1/Catalyst.pm line 1946<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catalyst::handle_request('MyApp', 'env', 'HASH(0x1a8c44d8)') called at /usr/local/share/perl/5.10.1/Catalyst/Engine/HTTP.pm line 395<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catalyst::Engine::HTTP::_handler('Catalyst::Engine::HTTP=HASH(0x19ec50e0)', 'MyApp', 3000, 'GET', '/', 'HTTP/1.1') called at /usr/local/share/perl/5.10.1/Catalyst/Engine/HTTP.pm line 292<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catalyst::Engine::HTTP::run('Catalyst::Engine::HTTP=HASH(0x19ec50e0)', 'MyApp', 3000, undef, 'HASH(0x19ad27f8)') called at /usr/local/share/perl/5.10.1/Catalyst.pm line 2399<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catalyst::run('MyApp', 3000, undef, 'HASH(0x19ad27f8)') called at /usr/local/share/perl/5.10.1/Catalyst/ScriptRole.pm line 49<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catalyst::ScriptRole::_run_application('Catalyst::Script::Server=HASH(0x1929fbc0)') called at /usr/local/share/perl/5.10.1/Catalyst/Script/Server.pm line 142<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catalyst::Script::Server::__ANON__() called at /usr/local/share/perl/5.10.1/Catalyst/Restarter/Forking.pm line 20<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catalyst::Restarter::Forking::_fork_and_start('Catalyst::Restarter::Forking=HASH(0x19ad2528)') called at /usr/local/share/perl/5.10.1/Catalyst/Restarter.pm line 141<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catalyst::Restarter::_handle_events('Catalyst::Restarter::Forking=HASH(0x19ad2528)', 'File::ChangeNotify::Event=HASH(0x19b03650)') called at /usr/local/share/perl/5.10.1/Catalyst/Restarter.pm line 105<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catalyst::Restarter::_restart_on_changes('Catalyst::Restarter::Forking=HASH(0x19ad2528)') called at /usr/local/share/perl/5.10.1/Catalyst/Restarter.pm line 93<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catalyst::Restarter::run_and_watch('Catalyst::Restarter::Forking=HASH(0x19ad2528)') called at /usr/local/share/perl/5.10.1/Catalyst/Script/Server.pm line 189<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catalyst::Script::Server::run('Catalyst::Script::Server=HASH(0x1929fbc0)') called at /usr/local/share/perl/5.10.1/Catalyst/ScriptRunner.pm line 20<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catalyst::ScriptRunner::run('Catalyst::ScriptRunner', 'MyApp', 'Server') called at /home/stefan/MyApp/script/myapp_server.pl line 8&quot;<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p></div></body></html>