]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 593170: Disallow urls like "show_bug.cgi?id=2323" (with no domain) in
authorMax Kanat-Alexander <mkanat@bugzilla.org>
Sat, 18 Sep 2010 23:47:01 +0000 (16:47 -0700)
committerMax Kanat-Alexander <mkanat@bugzilla.org>
Sat, 18 Sep 2010 23:47:01 +0000 (16:47 -0700)
the See Also field.
r=timello, a=mkanat

Bugzilla/Bug.pm
template/en/default/global/user-error.html.tmpl

index db9f2438d6c38ff032527db662b5808f60edf53f..a8f6651e03f2f0af1a2734d638d9478c56177952 100644 (file)
@@ -2815,6 +2815,15 @@ sub add_see_also {
         ThrowUserError('bug_url_invalid', { url => $input, reason => 'http' });
     }
 
+    # This stops the following edge cases from being accepted:
+    # * show_bug.cgi?id=1
+    # * /show_bug.cgi?id=1
+    # * http:///show_bug.cgi?id=1
+    if (!$uri->authority or $uri->path !~ m{/}) {
+        ThrowUserError('bug_url_invalid',
+                       { url => $input, reason => 'path_only' });
+    }
+
     my $result;
     # Launchpad URLs
     if ($uri->authority =~ /launchpad.net$/) {
index a885f4b3420096f33253f01c80c1cdd54c748f31..5d690db1725eb9b65803801bf05c13b3988de253 100644 (file)
     <code>[% url FILTER html %]</code> is not a valid URL to [% terms.abug %].
     [% IF reason == 'http' %]
       URLs must start with "http" or "https".
+    [% ELSIF reason == 'path_only' %]
+      You must specify a full URL.
     [% ELSIF reason == 'show_bug' %]
       [%+ field_descs.see_also %] URLs should point to one of:
       <ul>