From b34eb4a591fa4dbbc091524a1c1159e2743134c8 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Mon, 7 Aug 2017 03:24:29 +0200 Subject: [PATCH] ubiupdatevol: fix bug with -sSIZE: was ignoring IMAGE_FILE While at it, fix help text Signed-off-by: Denys Vlasenko --- miscutils/ubi_tools.c | 12 +++++++----- 1 file 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;