ubiupdatevol: fix -t to not require an option. Closes 7466
No binary (build failed)
—
(log yok)
| @@ -125,12 +125,24 @@ int ubi_tools_main(int argc UNUSED_PARAM, char **argv) | |
| strcpy(path, "/sys/class/ubi/ubi"); | |
| memset(&req_structs, 0, sizeof(req_structs)); | |
| + | #define OPTION_m (1 << 0) |
| + | #define OPTION_d (1 << 1) |
| + | #define OPTION_n (1 << 2) |
| + | #define OPTION_N (1 << 3) |
| + | #define OPTION_s (1 << 4) |
| + | #define OPTION_a (1 << 5) |
| + | #define OPTION_t (1 << 6) |
| if (do_mkvol) { | |
| opt_complementary = "-1:d+:n+:a+"; | |
| opts = getopt32(argv, "md:n:N:s:a:t:", | |
| &dev_num, &vol_id, | |
| &vol_name, &size_bytes_str, &alignment, &type | |
| ); | |
| + | } else |
| + | if (do_update) { |
| + | opt_complementary = "-1"; |
| + | opts = getopt32(argv, "s:at", &size_bytes_str); |
| + | opts *= OPTION_s; |
| } else { | |
| opt_complementary = "-1:m+:d+:n+:a+"; | |
| opts = getopt32(argv, "m:d:n:N:s:a:t:", | |
| @@ -138,13 +150,6 @@ int ubi_tools_main(int argc UNUSED_PARAM, char **argv) | |
| &vol_name, &size_bytes_str, &alignment, &type | |
| ); | |
| } | |
| - | #define OPTION_m (1 << 0) |
| - | #define OPTION_d (1 << 1) |
| - | #define OPTION_n (1 << 2) |
| - | #define OPTION_N (1 << 3) |
| - | #define OPTION_s (1 << 4) |
| - | #define OPTION_a (1 << 5) |
| - | #define OPTION_t (1 << 6) |
| if (opts & OPTION_s) | |
| size_bytes = xatoull_sfx(size_bytes_str, size_suffixes); | |
| @@ -302,9 +307,9 @@ int ubi_tools_main(int argc UNUSED_PARAM, char **argv) | |
| if (!(opts & OPTION_s)) { | |
| if (!*argv) | |
| bb_show_usage(); | |
| - | xstat(*argv, &st); |
| - | size_bytes = st.st_size; |
| xmove_fd(xopen(*argv, O_RDONLY), STDIN_FILENO); | |
| + | xfstat(STDIN_FILENO, &st, *argv); |
| + | size_bytes = st.st_size; |
| } | |
| bytes64 = size_bytes; | |