Module: tools Branch: master Commit: df5a6e8c92e84ef6a2dc7a541636b9a1826281eb URL: https://source.winehq.org/git/tools.git/?a=commit;h=df5a6e8c92e84ef6a2dc7a54... Author: Francois Gouget <fgouget(a)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(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)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; }