diff options
| author | Christopher Tate <ctate@google.com> | 2011-08-22 17:12:08 -0700 |
|---|---|---|
| committer | Christopher Tate <ctate@google.com> | 2011-08-22 17:12:08 -0700 |
| commit | bb86bc5892374f3a41784135bebc7ada3270c8c1 (patch) | |
| tree | c608ca1be282e38980389495c1f9abdf355c6b2a /adb | |
| parent | 5da93589f106646203d6633e2e927aba01fbdb9f (diff) | |
| download | system_core-bb86bc5892374f3a41784135bebc7ada3270c8c1.tar.gz system_core-bb86bc5892374f3a41784135bebc7ada3270c8c1.tar.bz2 system_core-bb86bc5892374f3a41784135bebc7ada3270c8c1.zip | |
Fix 'adb backup' command line validation
The host side wasn't properly checking for argument-list sufficiency
*after* removing any [-f filename] sequence.
Fixes bug 5164135
Change-Id: I7bc49e37ef168182088e0e664b6897dd2a088ebf
Diffstat (limited to 'adb')
| -rw-r--r-- | adb/commandline.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/adb/commandline.c b/adb/commandline.c index a69f8677..75f337b4 100644 --- a/adb/commandline.c +++ b/adb/commandline.c @@ -579,9 +579,6 @@ static int backup(int argc, char** argv) { int fd, outFd; int i, j; - /* bare "adb backup" is not a valid command */ - if (argc < 2) return usage(); - /* find, extract, and use any -f argument */ for (i = 1; i < argc; i++) { if (!strcmp("-f", argv[i])) { @@ -598,6 +595,9 @@ static int backup(int argc, char** argv) { } } + /* bare "adb backup" or "adb backup -f filename" are not valid invocations */ + if (argc < 2) return usage(); + outFd = adb_open_mode(filename, O_WRONLY | O_CREAT | O_TRUNC, 0640); if (outFd < 0) { fprintf(stderr, "adb: unable to open file %s\n", filename); |
