]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 107743 - post_bug.cgi doesn't properly validate parameters
authorbbaetz%student.usyd.edu.au <>
Fri, 1 Mar 2002 13:39:25 +0000 (13:39 +0000)
committerbbaetz%student.usyd.edu.au <>
Fri, 1 Mar 2002 13:39:25 +0000 (13:39 +0000)
r=gerv, justdave

post_bug.cgi

index fa3fd075f2e8aa4eb9171f7a5b9d3fb6e6807a49..7152e37c69572b1fd1013319954f9bef79e99486 100755 (executable)
@@ -39,7 +39,6 @@ sub sillyness {
     $zz = %::COOKIE;
     $zz = %::components;
     $zz = %::versions;
-    $zz = @::legal_bug_status;
     $zz = @::legal_opsys;
     $zz = @::legal_platform;
     $zz = @::legal_priority;
@@ -122,7 +121,12 @@ if (Param("useqacontact")) {
 }
 
 if (exists $::FORM{'bug_status'}) {
-    if (!UserInGroup("canedit") && !UserInGroup("canconfirm")) {
+    # Ignore the given status, so that we can set it to UNCONFIRMED
+    # or NEW, depending on votestoconfirm if either the given state was
+    # unconfirmed (so that a user can't override the below check), or if
+    # the user doesn't have permission to change the default status anyway
+    if ($::FORM{'bug_status'} == $::unconfirmedstate
+        || (!UserInGroup("canedit") && !UserInGroup("canconfirm"))) {
         delete $::FORM{'bug_status'};
     }
 }
@@ -142,6 +146,10 @@ if (!exists $::FORM{'target_milestone'}) {
     $::FORM{'target_milestone'} = FetchOneColumn();
 }
 
+if (!Param('letsubmitterchoosepriority')) {
+    $::FORM{'priority'} = Param{'defaultpriority'};
+}
+
 GetVersionTable();
 CheckFormField(\%::FORM, 'product', \@::legal_product);
 CheckFormField(\%::FORM, 'version', \@{$::versions{$::FORM{'product'}}});
@@ -152,7 +160,7 @@ CheckFormField(\%::FORM, 'bug_severity', \@::legal_severity);
 CheckFormField(\%::FORM, 'priority', \@::legal_priority);
 CheckFormField(\%::FORM, 'op_sys', \@::legal_opsys);
 CheckFormFieldDefined(\%::FORM, 'assigned_to');
-CheckFormField(\%::FORM, 'bug_status', \@::legal_bug_status);
+CheckFormField(\%::FORM, 'bug_status', [$::unconfirmedstate, 'NEW']);
 CheckFormFieldDefined(\%::FORM, 'bug_file_loc');
 CheckFormField(\%::FORM, 'component', 
                \@{$::components{$::FORM{'product'}}});