diff --git a/mozilla/webtools/bugzilla/buglist.cgi b/mozilla/webtools/bugzilla/buglist.cgi index d226ec8a88f..44565f1af9d 100755 --- a/mozilla/webtools/bugzilla/buglist.cgi +++ b/mozilla/webtools/bugzilla/buglist.cgi @@ -221,8 +221,9 @@ sub LookupNamedQuery { $name || ThrowUserError("query_name_missing"); trick_taint($name); if ($sharer_id) { - trick_taint($sharer_id); $owner_id = $sharer_id; + detaint_natural($owner_id); + $owner_id || ThrowUserError('illegal_user_id', {'userid' => $sharer_id}); } else { $owner_id = $user->id; diff --git a/mozilla/webtools/bugzilla/template/en/default/global/user-error.html.tmpl b/mozilla/webtools/bugzilla/template/en/default/global/user-error.html.tmpl index 58eaf5893d9..3fdc24d4deb 100644 --- a/mozilla/webtools/bugzilla/template/en/default/global/user-error.html.tmpl +++ b/mozilla/webtools/bugzilla/template/en/default/global/user-error.html.tmpl @@ -966,7 +966,7 @@ [% docslinks = {'query.html' => "Searching for $terms.bugs", 'list.html' => "$terms.Bug lists"} %] The search named [% queryname FILTER html %] - [% IF sharer_id %] + [% IF sharer_id && sharer_id != user.id %] has not been made visible to you. [% ELSE %] does not exist. @@ -1521,8 +1521,10 @@ # search from any error call location. %] [% namedcmd = Bugzilla.cgi.param("namedcmd") %] +[% sharer_id = Bugzilla.cgi.param("sharer_id") %] [% IF namedcmd AND error != "missing_query" - AND error != "saved_search_used_by_whines" %] + AND error != "saved_search_used_by_whines" + AND !sharer_id %]