diff options
author | Songchun Fan <schfan@google.com> | 2020-03-17 12:37:07 -0700 |
---|---|---|
committer | Songchun Fan <schfan@google.com> | 2020-03-17 14:27:31 -0700 |
commit | 306b7df3f9925fe0a042da5420f7777681cfad9b (patch) | |
tree | 85aa3857964456792a6ca5c3143509735ab19e40 /services/incremental | |
parent | eeff2cf7531f06816c168131f641f98b5fcbea81 (diff) |
[incremental service] avoid nullptr dereferencing
externalListener could be nullptr.
BUG: 150795871
Test: atest service.incremental_test
Change-Id: I2843e1751cb1f7e9318edb05e9a8f5256ad9f3a8
Diffstat (limited to 'services/incremental')
-rw-r--r-- | services/incremental/IncrementalService.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/services/incremental/IncrementalService.cpp b/services/incremental/IncrementalService.cpp index cccd01339177..44a2010dd207 100644 --- a/services/incremental/IncrementalService.cpp +++ b/services/incremental/IncrementalService.cpp @@ -1090,7 +1090,9 @@ bool IncrementalService::prepareDataLoader(IncrementalService::IncFsMount& ifs, base::unique_fd(::dup(ifs.control.pendingReads))); fsControlParcel.incremental->log.reset(base::unique_fd(::dup(ifs.control.logs))); sp<IncrementalDataLoaderListener> listener = - new IncrementalDataLoaderListener(*this, *externalListener); + new IncrementalDataLoaderListener(*this, + externalListener ? *externalListener + : DataLoaderStatusListener()); bool created = false; auto status = mDataLoaderManager->initializeDataLoader(ifs.mountId, *dlp, fsControlParcel, listener, &created); @@ -1230,8 +1232,8 @@ binder::Status IncrementalService::IncrementalDataLoaderListener::onStatusChange std::unique_lock l(incrementalService.mLock); const auto& ifs = incrementalService.getIfsLocked(mountId); if (!ifs) { - LOG(WARNING) << "Received data loader status " << int(newStatus) << " for unknown mount " - << mountId; + LOG(WARNING) << "Received data loader status " << int(newStatus) + << " for unknown mount " << mountId; return binder::Status::ok(); } ifs->dataLoaderStatus = newStatus; |