summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2015-04-28 19:52:17 +0200
committerGerrit Code Review <noreply-gerritcodereview@google.com>2015-04-28 19:52:17 +0200
commit8c389e9c769c8632cf16c0794f1e84f49996077c (patch)
treecf3e1d4b9957032db8046f4bb49d5878cb60a538
parentMerge "Revert "Revert "init re-execs to set its security context now.""" (diff)
parentStop using adb_strtok, and check argument validity. (diff)
downloadandroid_bootable_recovery-8c389e9c769c8632cf16c0794f1e84f49996077c.tar
android_bootable_recovery-8c389e9c769c8632cf16c0794f1e84f49996077c.tar.gz
android_bootable_recovery-8c389e9c769c8632cf16c0794f1e84f49996077c.tar.bz2
android_bootable_recovery-8c389e9c769c8632cf16c0794f1e84f49996077c.tar.lz
android_bootable_recovery-8c389e9c769c8632cf16c0794f1e84f49996077c.tar.xz
android_bootable_recovery-8c389e9c769c8632cf16c0794f1e84f49996077c.tar.zst
android_bootable_recovery-8c389e9c769c8632cf16c0794f1e84f49996077c.zip
-rw-r--r--minadbd/services.cpp19
1 files changed, 10 insertions, 9 deletions
diff --git a/minadbd/services.cpp b/minadbd/services.cpp
index a83256796..dd1fd7c4b 100644
--- a/minadbd/services.cpp
+++ b/minadbd/services.cpp
@@ -43,15 +43,16 @@ void* service_bootstrap_func(void* x) {
return 0;
}
-static void sideload_host_service(int sfd, void* cookie) {
- char* saveptr;
- const char* s = adb_strtok_r(reinterpret_cast<char*>(cookie), ":", &saveptr);
- uint64_t file_size = strtoull(s, NULL, 10);
- s = adb_strtok_r(NULL, ":", &saveptr);
- uint32_t block_size = strtoul(s, NULL, 10);
-
- printf("sideload-host file size %" PRIu64 " block size %" PRIu32 "\n",
- file_size, block_size);
+static void sideload_host_service(int sfd, void* data) {
+ const char* args = reinterpret_cast<const char*>(data);
+ int file_size;
+ int block_size;
+ if (sscanf(args, "%d:%d", &file_size, &block_size) != 2) {
+ printf("bad sideload-host arguments: %s\n", args);
+ exit(1);
+ }
+
+ printf("sideload-host file size %d block size %d\n", file_size, block_size);
int result = run_adb_fuse(sfd, file_size, block_size);