your claims does not match the code of both CodedInputStream::PushLimit 
and WireFormatLite::ReadMessageNoVirtual.

1. PushLimit does check for a larger limit inside a smaller one (respects 
the closer limit). see
2. ReadMessageNoVirtual reads the message length and passes it to PushLimit 
before actually parsing the message, when the masses is fully parsed, 
is used to determine if there's anything left in the stream. see

please notice that there's no guarantee that the stream reached EOF once 
this ReamMessageNoVirtual returns, as this message may be a part of another 
one, my guess is that you didn't push a limit into the coded stream before 
calling this method.

please let me know if this is helpful,

You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To view this discussion on the web visit
To post to this group, send email to
To unsubscribe from this group, send email to
For more options, visit this group at

Reply via email to