3 ms·
last time I looked Brotli format do not clearly define its frame format, such as there is a good chance that a random stream of data would be decoded as valid b
by dvhh 4y ago
last time I looked Brotli format do not clearly define its frame format, such as there is a good chance that a random stream of data would be decoded as valid brotli compressed data.
- BackBlast 4y agoWhen is this ever left to chance? Why would a system randomly decide to try decoding a stream as brotli if it isn't?
- Too 4y agoIts not so much about suddenly starting to decode something. It’s more when your stream for some reason gets misaligned or corrupted and whatever is still streamed is happily consumed with no possible way to detect the error. Common reason being someone forgot to check how many bytes read() actually returned and just assume it filled the buffer. Robust data formats have double protection against this class of bugs with unambiguous SOF and EOF boundaries that the consumer can assert. I guess a sanity-byte once every X Megabytes wouldn’t hurt either.
- BackBlast 4y agoI use brotli as a web distribution format and as an internal compression format on web stacks for various projects and for production systems without issue. I still don't understand the use case limitation, or exactly where this is a potential issue. Why is the data being interrupted? Is this some kind of raw UDP stream use case?