On Tue, May 19, 2015 at 11:35 AM, Jim Muchow <[email protected]> wrote:

> I sent a question yesterday, but I don't see it as having been posted,
> much less
> responded to. My apologies for the redundancy if my original message is in
> some
> queue somewhere.
>
> **********
>
> I'm trying to determine the utility of Valgrind in an app. The app uses
> protocol buffers.
>
> I am seeing a message from Valgrind
>
> Syscall param write(buf) points to uninitialised byte(s)
>
> with the following info
>
> Address 0x11c7fa02 is 2 bytes inside a block of size 8,192 alloc'd
>
> At first, I thought it might be one of the fields in a message declared
> optional, but
> when I filled out the field, I got the same warning. In the process of
> looking into this
> more closely I was able to dump the buffer:
>
> 0x00    0x01    0xc1    0x09    0x00    0x00    0x00    0x10 <---- secret,
> pre-header?
> 0x08    0x00    0x10    0xa5    0xcb    0x96    0xad    0x0a
> 0x1a    0x06    0x61    0x70    0x61    0x63    0x68    0x65
>
> The latter 16 bytes are the message proper with three fields and I
> understand how
> they are created and interpreted from the Encoding spec (very helpful). It
> is the first
> eight bytes I don't  understand.
>
> These first bytes are almost like a secret pre-header. It looks to me as
> if the last four
> bytes are a 32-bit length field. The number matches in this case and in
> the other case in
> which the optional field was left unset. I can't figure what the first
> four bytes indicate. In
> particular, the bytes 0xc1 and 0x09, which would start the area of the
> supposedly
> uninitialized bytes.
>
> Is there somewhere in the code I can look to see how this pre-header is
> created. Or I
> would be happy to research this myself if some documentation exists, but I
> don't know
> where to start looking.
>
Protobuf does not have such thing as pre-headers. A message is just
serialized as <field tag, field value> pairs without any additional
information (nothing about message name, protobuf version, etc.). The
header you see might be generated by the app rather than protobuf.


>
> Thanks for any help,
> jdm
>
>  --
> 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.
>

-- 
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.

Reply via email to