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 
http://code.google.com/p/protobuf/source/browse/trunk/src/google/protobuf/io/coded_stream.cc#119
2. ReadMessageNoVirtual reads the message length and passes it to PushLimit 
before actually parsing the message, when the masses is fully parsed, 
ConsumedEntireMessage 
is used to determine if there's anything left in the stream. see 
http://code.google.com/p/protobuf/source/browse/trunk/src/google/protobuf/wire_format_lite_inl.h#408
.

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


-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/protobuf/-/-YU1o6RgJGYJ.
To post to this group, send email to protobuf@googlegroups.com.
To unsubscribe from this group, send email to 
protobuf+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en.

Reply via email to