mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-22 05:16:12 +03:00
Check callback availability in SpdyProxyClientSocket::RunWriteCallback
OnClose() could consume `write_callback_` so it may not be available when RunWriteCallback() is invoked. Bug: 1428820 Change-Id: I9a5ade62d67f5bf15e12d0915d1ad6098657ffd4 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4437791 Code-Coverage: Findit <findit-for-me@appspot.gserviceaccount.com> Reviewed-by: Adam Rice <ricea@chromium.org> Commit-Queue: Kenichi Ishibashi <bashi@chromium.org> Cr-Commit-Position: refs/heads/main@{#1131689}
This commit is contained in:
parent
900f316fde
commit
2396bbe185
@ -277,10 +277,11 @@ int SpdyProxyClientSocket::GetLocalAddress(IPEndPoint* address) const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void SpdyProxyClientSocket::RunWriteCallback(int result) {
|
void SpdyProxyClientSocket::RunWriteCallback(int result) {
|
||||||
CHECK(write_callback_);
|
|
||||||
|
|
||||||
base::WeakPtr<SpdyProxyClientSocket> weak_ptr = weak_factory_.GetWeakPtr();
|
base::WeakPtr<SpdyProxyClientSocket> weak_ptr = weak_factory_.GetWeakPtr();
|
||||||
std::move(write_callback_).Run(result);
|
// `write_callback_` might be consumed by OnClose().
|
||||||
|
if (write_callback_) {
|
||||||
|
std::move(write_callback_).Run(result);
|
||||||
|
}
|
||||||
if (!weak_ptr) {
|
if (!weak_ptr) {
|
||||||
// `this` was already destroyed while running `write_callback_`. Must
|
// `this` was already destroyed while running `write_callback_`. Must
|
||||||
// return immediately without touching any field member.
|
// return immediately without touching any field member.
|
||||||
|
Loading…
Reference in New Issue
Block a user