Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ames: account for variable-size num fragments (#561)
Currently we assume that the number of fragments in a `meow` has a fixed size of 4 bytes (which is also how we deserialize meows in in [lull.hoon](https://github.com/urbit/urbit/blob/develop/pkg/arvo/sys/lull.hoon#L1397); see `+sift-meow`), but in some cases we will retrieve from the cache a meow that has less than 4 bytes, which means that we will go over the actual length of the meow when calculating the size of the response to be sent. (To reproduce the problem, [this pdf](https://www.lab6.com/0) will cause the publisher to crash on the last fragment if anybody requests it using remote scry) This PR fixes this by checking how many bytes are actually used in a word, and then using that information to correctly calculate the size of the `meow`. Thanks to @pkova and @joemfb for helping with this.
- Loading branch information