diff --git a/minui/events.cpp b/minui/events.cpp
index a6b9671..e6e7bd2 100644
--- a/minui/events.cpp
+++ b/minui/events.cpp
@@ -204,7 +204,7 @@
     return 0;
 }
 
-void ev_iterate_available_keys(std::function<void(int)> f) {
+void ev_iterate_available_keys(const std::function<void(int)>& f) {
     // Use unsigned long to match ioctl's parameter type.
     unsigned long ev_bits[BITS_TO_LONGS(EV_MAX)]; // NOLINT
     unsigned long key_bits[BITS_TO_LONGS(KEY_MAX)]; // NOLINT
diff --git a/minui/minui.h b/minui/minui.h
index fb0bbe1..cddfe77 100644
--- a/minui/minui.h
+++ b/minui/minui.h
@@ -67,7 +67,7 @@
 int ev_init(ev_callback input_cb, void* data);
 void ev_exit();
 int ev_add_fd(int fd, ev_callback cb, void* data);
-void ev_iterate_available_keys(std::function<void(int)> f);
+void ev_iterate_available_keys(const std::function<void(int)>& f);
 int ev_sync_key_state(ev_set_key_callback set_key_cb, void* data);
 
 // 'timeout' has the same semantics as poll(2).
diff --git a/otafault/ota_io.cpp b/otafault/ota_io.cpp
index 94be815..2efd300 100644
--- a/otafault/ota_io.cpp
+++ b/otafault/ota_io.cpp
@@ -30,7 +30,7 @@
 static std::string write_fault_file_name = "";
 static std::string fsync_fault_file_name = "";
 
-static bool get_hit_file(const char* cached_path, std::string ffn) {
+static bool get_hit_file(const char* cached_path, const std::string& ffn) {
     return should_hit_cache()
         ? !strncmp(cached_path, OTAIO_CACHE_FNAME, strlen(cached_path))
         : !strncmp(cached_path, ffn.c_str(), strlen(cached_path));
diff --git a/recovery-refresh.cpp b/recovery-refresh.cpp
index 333367e..b75c915 100644
--- a/recovery-refresh.cpp
+++ b/recovery-refresh.cpp
@@ -76,7 +76,7 @@
     }
 
     std::string name(filename);
-    size_t dot = name.find_last_of(".");
+    size_t dot = name.find_last_of('.');
     std::string sub = name.substr(0, dot);
 
     if (!strstr(LAST_KMSG_FILE, sub.c_str()) &&
diff --git a/recovery.cpp b/recovery.cpp
index 0c9c147..cfca9df 100644
--- a/recovery.cpp
+++ b/recovery.cpp
@@ -1446,7 +1446,7 @@
     }
 
     std::string name(filename);
-    size_t dot = name.find_last_of(".");
+    size_t dot = name.find_last_of('.');
     std::string sub = name.substr(0, dot);
 
     if (!strstr(LAST_KMSG_FILE, sub.c_str()) &&
