]> 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:49:21 +0000 (16:49 -0700)
committerMax Kanat-Alexander <mkanat@bugzilla.org>
Sat, 18 Sep 2010 23:49:21 +0000 (16:49 -0700)
the See Also field.
r=timello, a=mkanat

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

index 9596160084bbe4d105b1ea8beb92019665d0330e..a3343a2f27a3fc683850b4afbc35606fb62b2251 100644 (file)
@@ -2385,6 +2385,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 bde6f661fcf80ea50ed059c239b8b0b134475e9a..cef7ffefe146e8037dbfc217a39c688aea922cb0 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>