Francois Gouget : testbot/testagent: Always strip the trailing '\0' from strings, even for error messages.
Alexandre Julliard
julliard at winehq.org
Mon Apr 14 12:10:15 CDT 2014
Module: tools
Branch: master
Commit: fa4327a3d2e74df70924c2e7a7c7b93069a30b6b
URL: http://source.winehq.org/git/tools.git/?a=commit;h=fa4327a3d2e74df70924c2e7a7c7b93069a30b6b
Author: Francois Gouget <fgouget at codeweavers.com>
Date: Mon Apr 14 15:45:10 2014 +0200
testbot/testagent: Always strip the trailing '\0' from strings, even for error messages.
---
testbot/lib/WineTestBot/TestAgent.pm | 22 ++++++++++++++++++----
1 file changed, 18 insertions(+), 4 deletions(-)
diff --git a/testbot/lib/WineTestBot/TestAgent.pm b/testbot/lib/WineTestBot/TestAgent.pm
index c9895ba..178cf51 100644
--- a/testbot/lib/WineTestBot/TestAgent.pm
+++ b/testbot/lib/WineTestBot/TestAgent.pm
@@ -323,6 +323,20 @@ sub _SkipRawData($$)
return $Success;
}
+sub _RecvRawString($$$)
+{
+ my ($self, $Name, $Size) = @_;
+
+ my $Str = $self->_RecvRawData($Name, $Size);
+ if (defined $Str)
+ {
+ # Remove the trailing '\0'
+ chop $Str;
+ debug(" RecvRawString('$Name') -> '$Str'\n");
+ }
+ return $Str;
+}
+
sub _RecvRawUInt32($$)
{
my ($self, $Name) = @_;
@@ -379,7 +393,7 @@ sub _ExpectEntryHeader($$$;$)
if ($HType eq 'e')
{
# The expected data was replaced with an error message
- my $Message = $self->_RecvRawData("$Name.e", $HSize);
+ my $Message = $self->_RecvRawString("$Name.e", $HSize);
return undef if (!defined $Message);
$self->_SetError($ERROR, $Message);
}
@@ -502,7 +516,7 @@ sub _SkipEntries($$)
if ($Type eq 'e')
{
# The expected data was replaced with an error message
- my $Message = $self->_RecvRawData("Skip$i.e", $Size);
+ my $Message = $self->_RecvRawString("Skip$i.e", $Size);
return undef if (!defined $Message);
$self->_SetError($ERROR, $Message);
}
@@ -599,7 +613,7 @@ sub _RecvErrorList($)
}
elsif ($Type eq 's')
{
- my $Status = $self->_RecvRawData("Err$i.s", $Size);
+ my $Status = $self->_RecvRawString("Err$i.s", $Size);
return $self->GetLastError() if (!defined $Status);
debug(" RecvStatus() -> '$Status'\n");
push @$Errors, $Status;
@@ -607,7 +621,7 @@ sub _RecvErrorList($)
elsif ($Type eq 'e')
{
# The expected data was replaced with an error message
- my $Message = $self->_RecvRawData("Err$i.e", $Size);
+ my $Message = $self->_RecvRawString("Err$i.e", $Size);
if (defined $Message)
{
debug(" RecvError() -> '$Message'\n");
More information about the wine-cvs
mailing list