From adeb41a8c0da3122a2907acb4aafd7ff9bce26af Mon Sep 17 00:00:00 2001 From: Jin Qian Date: Fri, 28 Apr 2017 16:15:13 -0700 Subject: [PATCH] recovery: update mkfs.f2fs args to match f2fs-tools 1.8.0 mkfs.f2fs in 1.8.0 returns error if number of sectors is 0. Skip this argument to let mkfs detect device size. 0 sector is also not necessary for 1.4.1. Test: format userdata to f2fs and boot Bug: 37758867 Change-Id: If120988dfb678596c973d183572f870eb0b72a27 --- roots.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/roots.cpp b/roots.cpp index 6e5ef981..727736b7 100644 --- a/roots.cpp +++ b/roots.cpp @@ -232,14 +232,14 @@ int format_volume(const char* volume, const char* directory) { << ") not supported on " << v->fs_type; return -1; } - char *num_sectors; - if (asprintf(&num_sectors, "%zd", length / 512) <= 0) { + char *num_sectors = nullptr; + if (length >= 512 && asprintf(&num_sectors, "%zd", length / 512) <= 0) { LOG(ERROR) << "format_volume: failed to create " << v->fs_type << " command for " << v->blk_device; return -1; } const char *f2fs_path = "/sbin/mkfs.f2fs"; - const char* const f2fs_argv[] = {"mkfs.f2fs", "-t", "-d1", v->blk_device, num_sectors, NULL}; + const char* const f2fs_argv[] = {"mkfs.f2fs", "-t", "-d1", v->blk_device, num_sectors, nullptr}; result = exec_cmd(f2fs_path, (char* const*)f2fs_argv); free(num_sectors);