mirror of https://github.com/fafhrd91/actix-web
Fixes #1321 A better fix would be to change `MessageBody` to take a `Pin<&mut Self>`, rather than a `Pin<&mut Self>`. This will avoid requiring the use of `Box` for all consumers by allowing the caller to determine how to pin the `MessageBody` implementation (e.g. via stack pinning). However, doing so is a breaking change that will affect every user of `MessageBody`. By pinning the inner stream ourselves, we can fix the undefined behavior without breaking the API. I've included @sebzim4500's reproduction case as a new test case. However, due to the nature of undefined behavior, this could pass (and not segfault) even if underlying issue were to regress. Unfortunately, until rust-lang/unsafe-code-guidelines#148 is resolved, it's not even possible to write a Miri test that will pass when the bug is fixed. Co-authored-by: Yuki Okushi <huyuumi.dev@gmail.com> |
||
|---|---|---|
| .. | ||
| client | ||
| cookie | ||
| encoding | ||
| h1 | ||
| h2 | ||
| header | ||
| ws | ||
| body.rs | ||
| builder.rs | ||
| cloneable.rs | ||
| config.rs | ||
| error.rs | ||
| extensions.rs | ||
| helpers.rs | ||
| httpcodes.rs | ||
| httpmessage.rs | ||
| lib.rs | ||
| message.rs | ||
| payload.rs | ||
| request.rs | ||
| response.rs | ||
| service.rs | ||
| test.rs | ||
| time_parser.rs | ||