diff --git a/binarystore.cpp b/binarystore.cpp
index 32547d7..e1cd03d 100644
--- a/binarystore.cpp
+++ b/binarystore.cpp
@@ -46,7 +46,7 @@
         return nullptr;
     }
 
-    return std::move(store);
+    return store;
 }
 
 std::unique_ptr<BinaryStoreInterface>
@@ -65,7 +65,7 @@
         return nullptr;
     }
 
-    return std::move(store);
+    return store;
 }
 
 bool BinaryStore::loadSerializedData()
@@ -215,7 +215,7 @@
     return true;
 }
 
-bool BinaryStore::deleteBlob(const std::string& blobId)
+bool BinaryStore::deleteBlob(const std::string&)
 {
     return false;
 }
diff --git a/handler.cpp b/handler.cpp
index 66500f4..a391b5a 100644
--- a/handler.cpp
+++ b/handler.cpp
@@ -146,15 +146,15 @@
     return it->second->write(offset, data);
 }
 
-bool BinaryStoreBlobHandler::writeMeta(uint16_t session, uint32_t offset,
-                                       const std::vector<uint8_t>& data)
+bool BinaryStoreBlobHandler::writeMeta(uint16_t, uint32_t,
+                                       const std::vector<uint8_t>&)
 {
     /* Binary store handler doesn't support write meta */
     return false;
 }
 
 bool BinaryStoreBlobHandler::commit(uint16_t session,
-                                    const std::vector<uint8_t>& data)
+                                    const std::vector<uint8_t>&)
 {
     auto it = sessions_.find(session);
     if (it == sessions_.end())
diff --git a/main.cpp b/main.cpp
index 061fc4c..7c39eaf 100644
--- a/main.cpp
+++ b/main.cpp
@@ -74,5 +74,5 @@
             config.blobBaseId, std::move(file)));
     }
 
-    return std::move(handler);
+    return handler;
 }
