commit | ac6f3a78188ee157a38973e7847a02aba80f4d1f | [log] [tgz] |
---|---|---|
author | Mark D. Roth <roth@google.com> | Thu Sep 24 11:44:54 2020 -0700 |
committer | Mark D. Roth <roth@google.com> | Thu Sep 24 11:55:42 2020 -0700 |
tree | f97052f7f1361cc8c152a428d5e0646884179779 | |
parent | f6f2594fc1d134c4ae7743b8d726df2b9cbbbb47 [diff] |
Fix use-after-free bug
diff --git a/src/core/ext/xds/xds_client.cc b/src/core/ext/xds/xds_client.cc index b1ed7b4..e3d9ced 100644 --- a/src/core/ext/xds/xds_client.cc +++ b/src/core/ext/xds/xds_client.cc
@@ -172,6 +172,7 @@ MutexLock lock(&self->ads_calld_->xds_client()->mu_); self->OnTimerLocked(GRPC_ERROR_REF(error)); } + self->ads_calld_.reset(); self->Unref(DEBUG_LOCATION, "timer"); } @@ -213,7 +214,6 @@ } GRPC_ERROR_UNREF(watcher_error); } - ads_calld_.reset(); GRPC_ERROR_UNREF(error); }