aboutsummaryrefslogtreecommitdiff
path: root/miscutils
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2014-09-25 22:10:32 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2014-09-25 22:10:32 +0200
commit186b98a86f069bb65bf4110e324d75fef98857c0 (patch)
tree3ef2a680ce89542fa9522fc63c6afe9077bf6233 /miscutils
parent054f5a5b0d383904e450ca718b1e758ed16baa66 (diff)
downloadbusybox-w32-186b98a86f069bb65bf4110e324d75fef98857c0.tar.gz
busybox-w32-186b98a86f069bb65bf4110e324d75fef98857c0.tar.bz2
busybox-w32-186b98a86f069bb65bf4110e324d75fef98857c0.zip
ubiupdatevol: fix -t to not require an option. Closes 7466
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'miscutils')
-rw-r--r--miscutils/ubi_tools.c23
1 files changed, 14 insertions, 9 deletions
diff --git a/miscutils/ubi_tools.c b/miscutils/ubi_tools.c
index b71393532..6c09fe534 100644
--- a/miscutils/ubi_tools.c
+++ b/miscutils/ubi_tools.c
@@ -125,12 +125,24 @@ int ubi_tools_main(int argc UNUSED_PARAM, char **argv)
125 strcpy(path, "/sys/class/ubi/ubi"); 125 strcpy(path, "/sys/class/ubi/ubi");
126 memset(&req_structs, 0, sizeof(req_structs)); 126 memset(&req_structs, 0, sizeof(req_structs));
127 127
128#define OPTION_m (1 << 0)
129#define OPTION_d (1 << 1)
130#define OPTION_n (1 << 2)
131#define OPTION_N (1 << 3)
132#define OPTION_s (1 << 4)
133#define OPTION_a (1 << 5)
134#define OPTION_t (1 << 6)
128 if (do_mkvol) { 135 if (do_mkvol) {
129 opt_complementary = "-1:d+:n+:a+"; 136 opt_complementary = "-1:d+:n+:a+";
130 opts = getopt32(argv, "md:n:N:s:a:t:", 137 opts = getopt32(argv, "md:n:N:s:a:t:",
131 &dev_num, &vol_id, 138 &dev_num, &vol_id,
132 &vol_name, &size_bytes_str, &alignment, &type 139 &vol_name, &size_bytes_str, &alignment, &type
133 ); 140 );
141 } else
142 if (do_update) {
143 opt_complementary = "-1";
144 opts = getopt32(argv, "s:at", &size_bytes_str);
145 opts *= OPTION_s;
134 } else { 146 } else {
135 opt_complementary = "-1:m+:d+:n+:a+"; 147 opt_complementary = "-1:m+:d+:n+:a+";
136 opts = getopt32(argv, "m:d:n:N:s:a:t:", 148 opts = getopt32(argv, "m:d:n:N:s:a:t:",
@@ -138,13 +150,6 @@ int ubi_tools_main(int argc UNUSED_PARAM, char **argv)
138 &vol_name, &size_bytes_str, &alignment, &type 150 &vol_name, &size_bytes_str, &alignment, &type
139 ); 151 );
140 } 152 }
141#define OPTION_m (1 << 0)
142#define OPTION_d (1 << 1)
143#define OPTION_n (1 << 2)
144#define OPTION_N (1 << 3)
145#define OPTION_s (1 << 4)
146#define OPTION_a (1 << 5)
147#define OPTION_t (1 << 6)
148 153
149 if (opts & OPTION_s) 154 if (opts & OPTION_s)
150 size_bytes = xatoull_sfx(size_bytes_str, size_suffixes); 155 size_bytes = xatoull_sfx(size_bytes_str, size_suffixes);
@@ -302,9 +307,9 @@ int ubi_tools_main(int argc UNUSED_PARAM, char **argv)
302 if (!(opts & OPTION_s)) { 307 if (!(opts & OPTION_s)) {
303 if (!*argv) 308 if (!*argv)
304 bb_show_usage(); 309 bb_show_usage();
305 xstat(*argv, &st);
306 size_bytes = st.st_size;
307 xmove_fd(xopen(*argv, O_RDONLY), STDIN_FILENO); 310 xmove_fd(xopen(*argv, O_RDONLY), STDIN_FILENO);
311 xfstat(STDIN_FILENO, &st, *argv);
312 size_bytes = st.st_size;
308 } 313 }
309 314
310 bytes64 = size_bytes; 315 bytes64 = size_bytes;