summaryrefslogtreecommitdiffstats
path: root/minadbd
diff options
context:
space:
mode:
Diffstat (limited to 'minadbd')
-rw-r--r--minadbd/Android.bp4
-rw-r--r--minadbd/minadbd_services.cpp35
2 files changed, 21 insertions, 18 deletions
diff --git a/minadbd/Android.bp b/minadbd/Android.bp
index 00244ee7e..a95d979a5 100644
--- a/minadbd/Android.bp
+++ b/minadbd/Android.bp
@@ -21,6 +21,8 @@ cc_defaults {
"-Werror",
],
+ cpp_std: "experimental",
+
include_dirs: [
"system/core/adb",
],
@@ -52,6 +54,7 @@ cc_library {
cc_test {
name: "minadbd_test",
+ isolated: true,
defaults: [
"minadbd_defaults",
@@ -64,7 +67,6 @@ cc_test {
static_libs: [
"libminadbd_services",
"libadbd",
- "libBionicGtestMain",
],
shared_libs: [
diff --git a/minadbd/minadbd_services.cpp b/minadbd/minadbd_services.cpp
index ab1939e92..9309ed749 100644
--- a/minadbd/minadbd_services.cpp
+++ b/minadbd/minadbd_services.cpp
@@ -23,6 +23,7 @@
#include <functional>
#include <string>
+#include <string_view>
#include <thread>
#include "adb.h"
@@ -33,29 +34,29 @@
#include "sysdeps.h"
static void sideload_host_service(unique_fd sfd, const std::string& args) {
- int file_size;
- int block_size;
- if (sscanf(args.c_str(), "%d:%d", &file_size, &block_size) != 2) {
- printf("bad sideload-host arguments: %s\n", args.c_str());
- exit(1);
- }
+ int64_t file_size;
+ int block_size;
+ if ((sscanf(args.c_str(), "%" SCNd64 ":%d", &file_size, &block_size) != 2) || file_size <= 0 ||
+ block_size <= 0) {
+ printf("bad sideload-host arguments: %s\n", args.c_str());
+ exit(1);
+ }
- printf("sideload-host file size %d block size %d\n", file_size, block_size);
+ printf("sideload-host file size %" PRId64 " block size %d\n", file_size, block_size);
- int result = run_adb_fuse(sfd, file_size, block_size);
+ int result = run_adb_fuse(sfd, file_size, block_size);
- printf("sideload_host finished\n");
- exit(result == 0 ? 0 : 1);
+ printf("sideload_host finished\n");
+ exit(result == 0 ? 0 : 1);
}
-unique_fd daemon_service_to_fd(const char* name, atransport* /* transport */) {
- if (!strncmp(name, "sideload:", 9)) {
- // this exit status causes recovery to print a special error
- // message saying to use a newer adb (that supports
- // sideload-host).
+unique_fd daemon_service_to_fd(std::string_view name, atransport* /* transport */) {
+ if (name.starts_with("sideload:")) {
+ // This exit status causes recovery to print a special error message saying to use a newer adb
+ // (that supports sideload-host).
exit(3);
- } else if (!strncmp(name, "sideload-host:", 14)) {
- std::string arg(name + 14);
+ } else if (name.starts_with("sideload-host:")) {
+ std::string arg(name.substr(strlen("sideload-host:")));
return create_service_thread("sideload-host",
std::bind(sideload_host_service, std::placeholders::_1, arg));
}