From 306b7df3f9925fe0a042da5420f7777681cfad9b Mon Sep 17 00:00:00 2001 From: Songchun Fan Date: Tue, 17 Mar 2020 12:37:07 -0700 Subject: [incremental service] avoid nullptr dereferencing externalListener could be nullptr. BUG: 150795871 Test: atest service.incremental_test Change-Id: I2843e1751cb1f7e9318edb05e9a8f5256ad9f3a8 --- services/incremental/IncrementalService.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'services/incremental/IncrementalService.cpp') 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 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; -- cgit v1.2.3-59-g8ed1b