diff --git a/Checkpoint.cpp b/Checkpoint.cpp index ce0d00c..28855e6 100644 --- a/Checkpoint.cpp +++ b/Checkpoint.cpp @@ -296,9 +296,9 @@ Status cp_restoreCheckpoint(const std::string& blockDevice) { PLOG(ERROR) << "Cannot open " << blockDevice; return Status::fromExceptionCode(errno, ("Cannot open " + blockDevice).c_str()); } - char buffer[kBlockSize]; - device.read(buffer, kBlockSize); - log_sector& ls = *(log_sector*)buffer; + alignas(alignof(log_sector)) char ls_buffer[kBlockSize]; + device.read(ls_buffer, kBlockSize); + log_sector& ls = *reinterpret_cast(ls_buffer); if (ls.magic != kMagic) { LOG(ERROR) << "No magic"; return Status::fromExceptionCode(EINVAL, "No magic"); @@ -307,10 +307,9 @@ Status cp_restoreCheckpoint(const std::string& blockDevice) { LOG(INFO) << "Restoring " << ls.sequence << " log sectors"; for (int sequence = ls.sequence; sequence >= 0; sequence--) { - char buffer[kBlockSize]; device.seekg(0); - device.read(buffer, kBlockSize); - log_sector& ls = *(log_sector*)buffer; + device.read(ls_buffer, kBlockSize); + ls = *reinterpret_cast(ls_buffer); if (ls.magic != kMagic) { LOG(ERROR) << "No magic!"; return Status::fromExceptionCode(EINVAL, "No magic"); diff --git a/EncryptInplace.cpp b/EncryptInplace.cpp index d559bff..f55932d 100644 --- a/EncryptInplace.cpp +++ b/EncryptInplace.cpp @@ -524,11 +524,11 @@ static int cryptfs_enable_inplace_full(char* crypto_blkdev, char* real_blkdev, o for (i /= CRYPT_SECTORS_PER_BUFSIZE; i < numblocks; i++) { new_pct = (i + blocks_already_done) / one_pct; if (set_progress_properties && new_pct > cur_pct) { - char buf[8]; + char property_buf[8]; cur_pct = new_pct; - snprintf(buf, sizeof(buf), "%" PRId64, cur_pct); - android::base::SetProperty("vold.encrypt_progress", buf); + snprintf(property_buf, sizeof(property_buf), "%" PRId64, cur_pct); + android::base::SetProperty("vold.encrypt_progress", property_buf); } if (unix_read(realfd, buf, CRYPT_INPLACE_BUFSIZE) <= 0) { PLOG(ERROR) << "Error reading real_blkdev " << real_blkdev << " for inplace encrypt"; diff --git a/KeyStorage.h b/KeyStorage.h index 6aaf3ad..276b6b9 100644 --- a/KeyStorage.h +++ b/KeyStorage.h @@ -31,7 +31,7 @@ namespace vold { // If only "secret" is nonempty, it is used to decrypt in a non-Keymaster process. class KeyAuthentication { public: - KeyAuthentication(std::string t, std::string s) : token{t}, secret{s} {}; + KeyAuthentication(const std::string& t, const std::string& s) : token{t}, secret{s} {}; bool usesKeymaster() const { return !token.empty() || secret.empty(); }; diff --git a/Keymaster.h b/Keymaster.h index fabe0f4..42a2b5d 100644 --- a/Keymaster.h +++ b/Keymaster.h @@ -46,8 +46,8 @@ class KeymasterOperation { ~KeymasterOperation(); // Is this instance valid? This is false if creation fails, and becomes // false on finish or if an update fails. - explicit operator bool() { return mError == km::ErrorCode::OK; } - km::ErrorCode errorCode() { return mError; } + explicit operator bool() const { return mError == km::ErrorCode::OK; } + km::ErrorCode errorCode() const { return mError; } // Call "update" repeatedly until all of the input is consumed, and // concatenate the output. Return true on success. template diff --git a/MetadataCrypt.cpp b/MetadataCrypt.cpp index 8b4d04e..5c8a075 100644 --- a/MetadataCrypt.cpp +++ b/MetadataCrypt.cpp @@ -84,7 +84,7 @@ namespace vold { // Note: It is possible to orphan a key if it is removed before deleting // Update this once keymaster APIs change, and we have a proper commit. -static void commit_key(std::string dir) { +static void commit_key(const std::string& dir) { while (!android::base::WaitForProperty("vold.checkpoint_committed", "1")) { LOG(ERROR) << "Wait for boot timed out"; } diff --git a/VolumeManager.cpp b/VolumeManager.cpp index 45dd591..ce2d935 100644 --- a/VolumeManager.cpp +++ b/VolumeManager.cpp @@ -319,7 +319,8 @@ std::shared_ptr VolumeManager::findVolume(const std:: return nullptr; } -void VolumeManager::listVolumes(android::vold::VolumeBase::Type type, std::list& list) { +void VolumeManager::listVolumes(android::vold::VolumeBase::Type type, + std::list& list) const { list.clear(); for (const auto& disk : mDisks) { disk->listVolumes(type, list); diff --git a/VolumeManager.h b/VolumeManager.h index 9227819..e0a1bd6 100644 --- a/VolumeManager.h +++ b/VolumeManager.h @@ -52,7 +52,7 @@ class VolumeManager { std::mutex& getCryptLock() { return mCryptLock; } void setListener(android::sp listener) { mListener = listener; } - android::sp getListener() { return mListener; } + android::sp getListener() const { return mListener; } int start(); int stop(); @@ -68,8 +68,8 @@ class VolumeManager { return !fnmatch(mSysPattern.c_str(), sysPath.c_str(), 0); } - const std::string& getNickname() { return mNickname; } - int getFlags() { return mFlags; } + const std::string& getNickname() const { return mNickname; } + int getFlags() const { return mFlags; } private: std::string mSysPattern; @@ -82,7 +82,7 @@ class VolumeManager { std::shared_ptr findDisk(const std::string& id); std::shared_ptr findVolume(const std::string& id); - void listVolumes(android::vold::VolumeBase::Type type, std::list& list); + void listVolumes(android::vold::VolumeBase::Type type, std::list& list) const; int forgetPartition(const std::string& partGuid, const std::string& fsUuid); diff --git a/model/Disk.cpp b/model/Disk.cpp index 1568ba4..b66c336 100644 --- a/model/Disk.cpp +++ b/model/Disk.cpp @@ -153,7 +153,7 @@ std::shared_ptr Disk::findVolume(const std::string& id) { return nullptr; } -void Disk::listVolumes(VolumeBase::Type type, std::list& list) { +void Disk::listVolumes(VolumeBase::Type type, std::list& list) const { for (const auto& vol : mVolumes) { if (vol->getType() == type) { list.push_back(vol->getId()); diff --git a/model/Disk.h b/model/Disk.h index 3140144..889e906 100644 --- a/model/Disk.h +++ b/model/Disk.h @@ -54,18 +54,18 @@ class Disk { kEmmc = 1 << 4, }; - const std::string& getId() { return mId; } - const std::string& getEventPath() { return mEventPath; } - const std::string& getSysPath() { return mSysPath; } - const std::string& getDevPath() { return mDevPath; } - dev_t getDevice() { return mDevice; } - uint64_t getSize() { return mSize; } - const std::string& getLabel() { return mLabel; } - int getFlags() { return mFlags; } + const std::string& getId() const { return mId; } + const std::string& getEventPath() const { return mEventPath; } + const std::string& getSysPath() const { return mSysPath; } + const std::string& getDevPath() const { return mDevPath; } + dev_t getDevice() const { return mDevice; } + uint64_t getSize() const { return mSize; } + const std::string& getLabel() const { return mLabel; } + int getFlags() const { return mFlags; } std::shared_ptr findVolume(const std::string& id); - void listVolumes(VolumeBase::Type type, std::list& list); + void listVolumes(VolumeBase::Type type, std::list& list) const; status_t create(); status_t destroy(); diff --git a/model/PrivateVolume.h b/model/PrivateVolume.h index 85aa4dc..cb8e75d 100644 --- a/model/PrivateVolume.h +++ b/model/PrivateVolume.h @@ -39,9 +39,9 @@ class PrivateVolume : public VolumeBase { public: PrivateVolume(dev_t device, const std::string& keyRaw); virtual ~PrivateVolume(); - const std::string& getFsType() { return mFsType; }; - const std::string& getRawDevPath() { return mRawDevPath; }; - const std::string& getRawDmDevPath() { return mDmDevPath; }; + const std::string& getFsType() const { return mFsType; }; + const std::string& getRawDevPath() const { return mRawDevPath; }; + const std::string& getRawDmDevPath() const { return mDmDevPath; }; protected: status_t doCreate() override; diff --git a/model/VolumeBase.cpp b/model/VolumeBase.cpp index 300add1..b04dd70 100644 --- a/model/VolumeBase.cpp +++ b/model/VolumeBase.cpp @@ -143,7 +143,7 @@ status_t VolumeBase::setInternalPath(const std::string& internalPath) { return OK; } -android::sp VolumeBase::getListener() { +android::sp VolumeBase::getListener() const { if (mSilent) { return nullptr; } else { diff --git a/model/VolumeBase.h b/model/VolumeBase.h index 92a83f0..28802d4 100644 --- a/model/VolumeBase.h +++ b/model/VolumeBase.h @@ -76,15 +76,15 @@ class VolumeBase { kBadRemoval, }; - const std::string& getId() { return mId; } - const std::string& getDiskId() { return mDiskId; } - const std::string& getPartGuid() { return mPartGuid; } - Type getType() { return mType; } - int getMountFlags() { return mMountFlags; } - userid_t getMountUserId() { return mMountUserId; } - State getState() { return mState; } - const std::string& getPath() { return mPath; } - const std::string& getInternalPath() { return mInternalPath; } + const std::string& getId() const { return mId; } + const std::string& getDiskId() const { return mDiskId; } + const std::string& getPartGuid() const { return mPartGuid; } + Type getType() const { return mType; } + int getMountFlags() const { return mMountFlags; } + userid_t getMountUserId() const { return mMountUserId; } + State getState() const { return mState; } + const std::string& getPath() const { return mPath; } + const std::string& getInternalPath() const { return mInternalPath; } status_t setDiskId(const std::string& diskId); status_t setPartGuid(const std::string& partGuid); @@ -116,7 +116,7 @@ class VolumeBase { status_t setPath(const std::string& path); status_t setInternalPath(const std::string& internalPath); - android::sp getListener(); + android::sp getListener() const; private: /* ID that uniquely references volume while alive */