Francois Gouget : testbot/cgi: Avoid direct access to the base Page error fields.

Alexandre Julliard julliard at winehq.org
Tue Jul 5 15:51:23 CDT 2022


Module: tools
Branch: master
Commit: df5a6e8c92e84ef6a2dc7a541636b9a1826281eb
URL:    https://source.winehq.org/git/tools.git/?a=commit;h=df5a6e8c92e84ef6a2dc7a541636b9a1826281eb

Author: Francois Gouget <fgouget at codeweavers.com>
Date:   Tue Jul  5 17:51:50 2022 +0200

testbot/cgi: Avoid direct access to the base Page error fields.

Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 testbot/lib/ObjectModel/CGI/FormPage.pm | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/testbot/lib/ObjectModel/CGI/FormPage.pm b/testbot/lib/ObjectModel/CGI/FormPage.pm
index 6f3449b5..f2fd0f09 100644
--- a/testbot/lib/ObjectModel/CGI/FormPage.pm
+++ b/testbot/lib/ObjectModel/CGI/FormPage.pm
@@ -503,14 +503,17 @@ sub GenerateBody($)
   $self->GenerateFields();
   $self->GenerateRequiredLegend();
 
-  if (defined $self->{ErrMessage})
+  my $ErrMessage = $self->GetErrMessage();
+  if (defined $ErrMessage)
   {
-    if (defined $self->{ErrField})
+    my $ErrField = $self->GetErrField();
+    if (defined $ErrField)
     {
-      my $PropertyDescriptor = $self->GetPropertyDescriptorByName($self->{ErrField});
+      my $PropertyDescriptor = $self->GetPropertyDescriptorByName($ErrField);
       if ($PropertyDescriptor and !($self->DisplayProperty($PropertyDescriptor))[0])
       {
-        $self->{ErrMessage} = "Internal error?\n$self->{ErrMessage}";
+        # The hidden fields should not be invalid
+        $self->AddError("Internal error?\n$ErrMessage", $ErrField);
       }
     }
     $self->GenerateErrorPopup();
@@ -573,8 +576,7 @@ sub Validate($)
     my $ErrMessage = $PropertyDescriptor->ValidateValue($Value, 1);
     if ($ErrMessage)
     {
-      $self->{ErrMessage} = $ErrMessage;
-      $self->{ErrField} = $PropertyDescriptor->GetName();
+      $self->AddError($ErrMessage, $PropertyDescriptor->GetName());
       return !1;
     }
   }
@@ -686,7 +688,7 @@ sub OnAction($$)
 {
   my ($self, $Action) = @_;
 
-  $self->SetError(undef, "No action defined for $Action");
+  $self->AddError("No action defined for $Action");
   return 0;
 }
 




More information about the wine-cvs mailing list