aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--miscutils/ubi_tools.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/miscutils/ubi_tools.c b/miscutils/ubi_tools.c
index d9b76b69c..494718ccf 100644
--- a/miscutils/ubi_tools.c
+++ b/miscutils/ubi_tools.c
@@ -298,7 +298,7 @@ int ubi_tools_main(int argc UNUSED_PARAM, char **argv)
} else
//usage:#define ubiupdatevol_trivial_usage
-//usage: "[-t | [-s SIZE] IMG_FILE] UBI_DEVICE"
+//usage: "-t UBI_DEVICE | [-s SIZE] UBI_DEVICE IMG_FILE"
//usage:#define ubiupdatevol_full_usage "\n\n"
//usage: "Update UBI volume\n"
//usage: "\n -t Truncate to zero size"
@@ -313,7 +313,6 @@ int ubi_tools_main(int argc UNUSED_PARAM, char **argv)
xioctl(fd, UBI_IOCVOLUP, &bytes64);
}
else {
- struct stat st;
unsigned ubinum, volnum;
unsigned leb_size;
ssize_t len;
@@ -327,12 +326,15 @@ int ubi_tools_main(int argc UNUSED_PARAM, char **argv)
sprintf(path_sys_class_ubi_ubi, "%u_%u/usable_eb_size", ubinum, volnum);
leb_size = get_num_from_file(path, MAX_SANE_ERASEBLOCK, "Can't get usable eraseblock size from '%s'");
- if (!(opts & OPTION_s)) {
+ if (!(opts & OPTION_t)) {
if (!*argv)
bb_show_usage();
xmove_fd(xopen(*argv, O_RDONLY), STDIN_FILENO);
- xfstat(STDIN_FILENO, &st, *argv);
- size_bytes = st.st_size;
+ if (!(opts & OPTION_s)) {
+ struct stat st;
+ xfstat(STDIN_FILENO, &st, *argv);
+ size_bytes = st.st_size;
+ }
}
bytes64 = size_bytes;