Merge changes I1c50546e,I8254cb6b,Ib179299a,Iec1c2801

* changes:
  EncryptInplace: Rename variable
  Checkpoint: Assure proper buffer alignment
  vold: Pass std::string by const reference
  vold: const-ify some of the API
diff --git a/Checkpoint.cpp b/Checkpoint.cpp
index ce0d00c..28855e6 100644
--- a/Checkpoint.cpp
+++ b/Checkpoint.cpp
@@ -296,9 +296,9 @@
         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<log_sector*>(ls_buffer);
     if (ls.magic != kMagic) {
         LOG(ERROR) << "No magic";
         return Status::fromExceptionCode(EINVAL, "No magic");
@@ -307,10 +307,9 @@
     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<log_sector*>(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 @@
     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 @@
 // 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 @@
     ~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 <class TI, class TO>
diff --git a/MetadataCrypt.cpp b/MetadataCrypt.cpp
index 8b4d04e..5c8a075 100644
--- a/MetadataCrypt.cpp
+++ b/MetadataCrypt.cpp
@@ -84,7 +84,7 @@
 
 // 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 @@
     return nullptr;
 }
 
-void VolumeManager::listVolumes(android::vold::VolumeBase::Type type, std::list<std::string>& list) {
+void VolumeManager::listVolumes(android::vold::VolumeBase::Type type,
+                                std::list<std::string>& 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 @@
     std::mutex& getCryptLock() { return mCryptLock; }
 
     void setListener(android::sp<android::os::IVoldListener> listener) { mListener = listener; }
-    android::sp<android::os::IVoldListener> getListener() { return mListener; }
+    android::sp<android::os::IVoldListener> getListener() const { return mListener; }
 
     int start();
     int stop();
@@ -68,8 +68,8 @@
             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 @@
     std::shared_ptr<android::vold::Disk> findDisk(const std::string& id);
     std::shared_ptr<android::vold::VolumeBase> findVolume(const std::string& id);
 
-    void listVolumes(android::vold::VolumeBase::Type type, std::list<std::string>& list);
+    void listVolumes(android::vold::VolumeBase::Type type, std::list<std::string>& 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 @@
     return nullptr;
 }
 
-void Disk::listVolumes(VolumeBase::Type type, std::list<std::string>& list) {
+void Disk::listVolumes(VolumeBase::Type type, std::list<std::string>& 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 @@
         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<VolumeBase> findVolume(const std::string& id);
 
-    void listVolumes(VolumeBase::Type type, std::list<std::string>& list);
+    void listVolumes(VolumeBase::Type type, std::list<std::string>& 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 @@
   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 @@
     return OK;
 }
 
-android::sp<android::os::IVoldListener> VolumeBase::getListener() {
+android::sp<android::os::IVoldListener> 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 @@
         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 @@
     status_t setPath(const std::string& path);
     status_t setInternalPath(const std::string& internalPath);
 
-    android::sp<android::os::IVoldListener> getListener();
+    android::sp<android::os::IVoldListener> getListener() const;
 
   private:
     /* ID that uniquely references volume while alive */