Status: New
Owner: [email protected]
Labels: Type-Defect Priority-Medium
New issue 655 by [email protected]: String corruption
http://code.google.com/p/protobuf/issues/detail?id=655
I am seeing an issue with string corruption under very specific
circumstances.
My Proto file:
message MyMessage
{
required int32 field1 = 1;
enum MyEnum
{
ENUM_0 = 0;
ENUM_1 = 1;
ENUM_2 = 2;
ENUM_3 = 3;
}
optional MyEnum field2 = 2;
optional string field3 = 3;
optional string field4 = 4;
optional string field5 = 5;
optional string field6 = 6;
optional string field7 = 7;
optional string field8 = 8;
optional string field9 = 9;
message MySubMessage
{
required float field1 = 1;
required string field2 = 2;
}
repeated MySubMessage field10 = 10;
}
I fill in the message with the following values:
field1 = 1
field2 = ENUM_3
field3 = "ccccccccbaaaaaa"
field4 = "ccccccccbaaaaaab"
field5 = "ccccccccbaaaaaa"
field6 = "ccccccccbaaaaaab"
field7 = "ccccccccbaaaaa"
field8 = "ccccccccbaaaaaabbbb"
field9 = "ddddd"
field10.field1 = 0.91629
field10.field2 = "aaabcccccc"
All of the strings are set using the char* setter. I check the values after
adding them and they look good. I then serialize the message and call
ParseFromArray to de-serialize.
When I check the values, field3 has been corrupted and comes out as "▒ckk".
If i change the length of field3 to be one more or one less character it
works fine. I went down the list of subsequent string fields and tried
changing the length of each and it appears to solve the problem as well.
I am using protobuf 2.5 with GCC and running on QNX 6.4.1
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
You received this message because you are subscribed to the Google Groups "Protocol
Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.