]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 550097: checksetup.pl should detect when run via a web server (cgi) and fail...
authorFrédéric Buclin <LpSolit@gmail.com>
Mon, 11 Oct 2010 16:56:19 +0000 (18:56 +0200)
committerFrédéric Buclin <LpSolit@gmail.com>
Mon, 11 Oct 2010 16:56:19 +0000 (18:56 +0200)
r/a=mkanat

Bugzilla/Install/Util.pm
checksetup.pl
template/en/default/setup/strings.txt.pl

index 50cbfd2a8050d797cc7ac67319137441d0859445..14744ef8ce3dd6b02752314dc6eacfbb8c8e1209 100644 (file)
@@ -298,7 +298,7 @@ sub _wanted_languages {
 
     # Checking SERVER_SOFTWARE is the same as i_am_cgi() in Bugzilla::Util.
     if (exists $ENV{'SERVER_SOFTWARE'}) {
-        my $cgi = Bugzilla->cgi;
+        my $cgi = eval { Bugzilla->cgi } || eval { require CGI; return CGI->new() };
         $requested = $cgi->http('Accept-Language') || '';
         my $lang = $cgi->cookie('LANG');
         push(@wanted, $lang) if $lang;
@@ -504,6 +504,12 @@ sub vers_cmp {
     @A <=> @B;
 }
 
+sub no_checksetup_from_cgi {
+    print "Content-Type: text/html; charset=UTF-8\r\n\r\n";
+    print install_string('no_checksetup_from_cgi');
+    exit;
+}
+
 ######################
 # Helper Subroutines #
 ######################
index b6b4fc19c97439bf0f8336ecf450e94f1bf1ecf2..6d9230dd9e8f536d24e020a32dcaa2bbf7a872f3 100755 (executable)
@@ -60,6 +60,9 @@ use Bugzilla::Install::Util qw(install_string get_version_and_os
 # Live Code
 ######################################################################
 
+# Do not run checksetup.pl from the web browser.
+Bugzilla::Install::Util::no_checksetup_from_cgi() if $ENV{'SERVER_SOFTWARE'};
+
 # When we're running at the command line, we need to pick the right
 # language before ever displaying any string.
 init_console();
index f038692053da8e5a6418af34b073d6816b2addd2..ca1bf6145e43a5f6c35e4a892f607962851a0a4f 100644 (file)
@@ -336,6 +336,31 @@ WARNING: We are about to convert your table storage format to UTF-8. This
 
          If you ever used a version of Bugzilla before 2.22, we STRONGLY
          recommend that you stop checksetup.pl NOW and run contrib/recode.pl.
+END
+    no_checksetup_from_cgi => <<END,
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+          "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+  <head>
+    <title>checksetup.pl cannot run from a web browser</title>
+  </head>
+
+  <body>
+    <h1>checksetup.pl cannot run from a web browser</h1>
+    <p>
+      You <b>must not</b> execute this script from your web browser.
+      To install or upgrade Bugzilla, run this script from
+      the command-line (e.g. <tt>bash</tt> or <tt>ssh</tt> on Linux
+      or <tt>cmd.exe</tt> on Windows), and follow instructions given there.
+    </p>
+
+    <p>
+      For more information on how to install Bugzilla, please
+      <a href="http://www.bugzilla.org/docs/">read the documentation</a>
+      available on the official Bugzilla website.
+    </p>
+  </body>
+</html>
 END
     patchutils_missing => <<'END',
 OPTIONAL NOTE: If you want to be able to use the 'difference between two