I haven't looked at the decode_raw logic either, but wire type 2 is used for all length-delimited values. That's strings, bytes, and embedded messages (and packed repeated fields). decode_raw doesn't know when it's an embedded message and when it's a string/bytes. So it has to guess somehow, based on some heuristics (like how well the values decode, presumably). And here it guesses wrong.
Cheers, -ilia On Wed, May 19, 2021 at 10:40 AM Barry waldbaum <[email protected]> wrote: > > I've been building tools to generate generic protobuf data from json (yes, > I'm aware I lose context, this is for testing) > > I've found a message I can parse properly, but protoc --decode_raw can't: > > \n \a 3 4 5 0 0 0 0 > > protoc > 1 { > 6 { > } > 6: 0x30303030 > } > > to reproduce it: > > echo -n $'\x0a' > binary.dat; echo -n $'\x07' >> binary.dat; echo -n > $'3450000' >> binary.dat ; protoc --decode_raw < binary.dat > > I'm able to parse this properly using protowire as: > 1: "3450000" > > also if I change the first character in the bytes to a '1' I get a valid > output: > > $ echo -n $'\x0a' > binary.dat; echo -n $'\x07' >> binary.dat; echo -n > $'1450000' >> binary.dat ; protoc --decode_raw < binary.dat > 1: "1450000" > > $ protoc --version > libprotoc 3.15.8 > > I've worked really hard to keep the reproduction as simple as possible, I > haven't dug into the code for decode_raw yet, that's my next step.. > > thanks > -Barry > > -- > 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 view this discussion on the web visit > https://groups.google.com/d/msgid/protobuf/2ccfbf93-6b0e-49d5-ae8e-3b3dc1b55218n%40googlegroups.com. -- 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 view this discussion on the web visit https://groups.google.com/d/msgid/protobuf/CAKb7Uvj1OkLK%3D%2BRf%3D5A9%3Dhkj4OBw03QvHd7aR%3DsaL%3Dv9jS1Kgw%40mail.gmail.com.
