diff options
author | Elliott Hughes <enh@google.com> | 2015-04-28 17:52:17 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2015-04-28 17:52:17 +0000 |
commit | 8c389e9c769c8632cf16c0794f1e84f49996077c (patch) | |
tree | cf3e1d4b9957032db8046f4bb49d5878cb60a538 | |
parent | 6725ebc7b41ae0702adb28d9b40fbd392c6bfb9a (diff) | |
parent | ba45ddf37cf4543143af6b2e27fc1214f3dbe892 (diff) | |
download | recovery-master-soong.tar.gz |
Merge "Stop using adb_strtok, and check argument validity."master-soong
-rw-r--r-- | minadbd/services.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/minadbd/services.cpp b/minadbd/services.cpp index a8325679..dd1fd7c4 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); |