Stop using adb_strtok, and check argument validity.

(cherry picked from commit ba45ddf37c)

Change-Id: Iba4f77f7db54ca0184437bd8ea96abfadabc72a3
This commit is contained in:
Elliott Hughes 2015-04-27 18:39:27 -07:00
parent 5c025ac5c8
commit f7466f9f23

View file

@ -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);
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 %" PRIu64 " block size %" PRIu32 "\n",
file_size, block_size);
printf("sideload-host file size %d block size %d\n", file_size, block_size);
int result = run_adb_fuse(sfd, file_size, block_size);