Comment by Chaosvex

1 day ago

You wouldn't. It's a strange argument that can be countered with, "maybe don't do that?"

So why does the spec allow it? Like a good engineer I read the spec and tested against the over-wide example encodings given.

  • Because it's not a real standard and there is no blessed RFC for it. The DWARF spec is as close as you'll get and it says, "The integer zero is a special case, consisting of a single zero byte." So in a way, it doesn't.

    Either way, a properly written decoder (and it's like ten lines) should really not have any problems with it. I was agreeing with you.

    Edit: to clarify, I was talking about the author's argument being strange, not yours.

    • The WASM spec is more explicit about over-long LEB128 encoding.

      Edit: a properly written decoder is a lot more than 10 lines if you properly deal with integer overflow and both signed and unsigned ints.