> > You could add: > > > > warn "BLOCK: $block\n"; > > > > just above the eval, which will log all the "blocks" that are > > being eval > > to figure out which one is giving you the trouble. > > That's a useful suggestion, I'll give that a try. What I'm > expecting to find is that the $block that causes the error is > identical to previous $block values which don't cause an > error, but this will be a good thing to actually prove. > > Thanks very much.
My hypothesis was correct. The $block that causes the Insecure Dependency error to be thrown is identical to previous calls to that URL. Here's what $block contains: ==== sub { my $context = shift || die "template sub called without context\n"; my $stash = $context->stash; my $output = ''; my $error; eval { BLOCK: { #line 1 "/content/research/data/template/tt/User/Search/results.tt" # USE $stash->set('localsite', $context->plugin('LocalSite')); $output .= "\n"; #line 2 "/content/research/data/template/tt/User/Search/results.tt" # USE $stash->set('date', $context->plugin('date')); $output .= "\n"; #line 3 "/content/research/data/template/tt/User/Search/results.tt" # USE $stash->set('CGI', $context->plugin('CGI')); $output .= "\n"; #line 60 "/content/research/data/template/tt/User/Search/results.tt" if ($stash->get('results')) { #line 4 "/content/research/data/template/tt/User/Search/results.tt" $stash->set('manip', $stash->get(['date', 0, 'manip', 0])); #line 4 "/content/research/data/template/tt/User/Search/results.tt" $stash->set('count', $stash->get(['CGI', 0, 'param', [ 'resultstart' ]]) || 1); $output .= " \n <input type=\"hidden\" name=\"resultscount\" id=\"resultscount\" value=\""; #line 9 "/content/research/data/template/tt/User/Search/results.tt" $output .= $stash->get('hits'); $output .= "\">\n"; #line 21 "/content/research/data/template/tt/User/Search/results.tt" if ($stash->get('count') eq 1) { $output .= "\n <table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"headerBarA\">\n <tr>\n <td class=\"headers\" width=\"5\" valign=\"top\" align=\"right\"><img src=\""; #line 15 "/content/research/data/template/tt/User/Search/results.tt" $output .= $stash->get(['localsite', 0, 'imagesRoot', 0]); $output .= "/spacer.gif\" width=\"5\" height=\"20\"></td>\n <td class=\"headers\" valign=\"middle\" width=\"595\">\n "; #line 17 "/content/research/data/template/tt/User/Search/results.tt" $output .= $stash->get('hits'); $output .= " matches across "; #line 17 "/content/research/data/template/tt/User/Search/results.tt" $output .= $stash->get('collection_total'); $output .= " articles\n </td>\n </tr>\n </table>\n"; } $output .= "\n <table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"2\" id=\"results_table\">\n <tr><td colspan=\"2\"><img src=\""; #line 25 "/content/research/data/template/tt/User/Search/results.tt" $output .= $stash->get(['localsite', 0, 'imagesRoot', 0]); $output .= "/spacer.gif\" width=\"1\" height=\"1\"></td></tr>\n"; #line 60 "/content/research/data/template/tt/User/Search/results.tt" if (($stash->get('hits') > 0)) { #line 50 "/content/research/data/template/tt/User/Search/results.tt" # FOREACH do { my ($value, $error, $oldloop); my $list = $stash->get('results'); unless (UNIVERSAL::isa($list, 'Template::Iterator')) { $list = Template::Config->iterator($list) || die $Template::Config::ERROR, "\n"; } ($value, $error) = $list->get_first(); $stash = $context->localise(); $stash->set('loop', $list); eval { LOOP: while (! $error) { $stash->get(['import', [$value]]) if ref $value eq 'HASH'; #line 0 "/content/research/data/template/tt/User/Search/results.tt" if ($stash->get('HasAttachments')) { #line 0 "/content/research/data/template/tt/User/Search/results.tt" $stash->set('link', ($stash->get(['localsite', 0, 'documentRoot', 0]) . "/serve/" . $stash->get('VdkVgwKey'))); #line 0 "/content/research/data/template/tt/User/Search/results.tt" $stash->set('attachment_icon', ("<img src=\"" . $stash->get(['localsite', 0, 'imagesRoot', 0]) . "/icon_paperclip.gif\" width=\"10\" height=\"10\" border=\"0\" title=\"attachment\"> ")); } else { #line 0 "/content/research/data/template/tt/User/Search/results.tt" $stash->set('link', ($stash->get(['localsite', 0, 'documentRoot', 0]) . "/show/" . $stash->get('VdkVgwKey'))); #line 0 "/content/research/data/template/tt/User/Search/results.tt" $stash->set('attachment_icon', ''); } #line 39 "/content/research/data/template/tt/User/Search/results.tt" if (($stash->get('count') > 1)) { $output .= "\n <tr><td colspan=\"2\"><hr size=\"1\" width=\"100%\" bgcolor=\"#CCCCCC\"></td></tr>\n"; } $output .= "\n <tr>\n <td valign=\"top\" class=\"content\"><b><font color=\"#336699\">"; #line 43 "/content/research/data/template/tt/User/Search/results.tt" $output .= $stash->get('count'); $output .= ".</font></b></td>\n <td valign=\"top\">\n <div>"; #line 45 "/content/research/data/template/tt/User/Search/results.tt" $output .= $stash->get('attachment_icon'); $output .= "<a href=\""; #line 45 "/content/research/data/template/tt/User/Search/results.tt" $output .= $stash->get('link'); $output .= "\" target=\"_new"; #line 45 "/content/research/data/template/tt/User/Search/results.tt" $output .= $stash->get('count'); $output .= "\"><b>"; #line 45 "/content/research/data/template/tt/User/Search/results.tt" $output .= $stash->get(['manip', 0, 'UnixDate', [ $stash->get('VisibilityDate'), '%d %b %Y' ]]); $output .= ": "; #line 45 "/content/research/data/template/tt/User/Search/results.tt" $output .= $stash->get('Headline'); $output .= "</b></a></div>\n <div class=\"contentBlack\" style=\"padding-top:4px; padding-bottom:4px;\">"; #line 46 "/content/research/data/template/tt/User/Search/results.tt" $output .= $stash->get('VdkPBSummary'); $output .= "</div>\n <div align=\"right\"><a href=\""; #line 47 "/content/research/data/template/tt/User/Search/results.tt" $output .= $stash->get(['localsite', 0, 'cgiRoot', 0]); $output .= "/public/showCategory.pl?category="; #line 47 "/content/research/data/template/tt/User/Search/results.tt" $output .= $stash->get('CategoryId'); $output .= "\" target=\"_new\"><b>View similar articles</b></a> &n bsp;<a href=\""; #line 47 "/content/research/data/template/tt/User/Search/results.tt" $output .= $stash->get(['localsite', 0, 'documentRoot', 0]); $output .= "/profadd/"; #line 47 "/content/research/data/template/tt/User/Search/results.tt" $output .= $stash->get('CategoryId'); $output .= "\" target=\"_new\"><b>Subscribe to category</b></a></div>\n </td>\n </tr>\n"; #line 50 "/content/research/data/template/tt/User/Search/results.tt" $stash->set('count', $stash->get('count') + 1);; ($value, $error) = $list->get_next(); } }; $stash = $context->delocalise(); die $@ if $@; $error = 0 if $error && $error eq Template::Constants::STATUS_DONE; die $error if $error; }; } else { $output .= "\n <tr>\n <td class=\"tabledata\" colspan=\"2\">\n No articles match your search specification.\n </td>\n </tr>\n"; } } $output .= "\n </table>\n\n"; } }; if ($@) { $error = $context->catch($@, \$output); die $error unless $error->type eq 'return'; } return $output; } ==== Can anyone spot something that would cause this to throw a taint error (remember the $block string itself has been untainted, altho I think I'll add some extra debugging to confirm this as well). Once a particular process produces this Insecure Dependency, it seems that any future calls to that same process will also produce the error. So again, it definitely looks like the process is being corrupted in some way.... ------------------------------------------------------------------------ For more information about Barclays Capital, please visit our web site at http://www.barcap.com. Internet communications are not secure and therefore the Barclays Group does not accept legal responsibility for the contents of this message. Although the Barclays Group operates anti-virus programmes, it does not accept responsibility for any damage whatsoever that is caused by viruses being passed. Any views or opinions presented are solely those of the author and do not necessarily represent those of the Barclays Group. Replies to this email may be monitored by the Barclays Group for operational or business reasons. ------------------------------------------------------------------------