Automatically add a .zip to adb bugreport file when missing.

BUG: 27653204
Change-Id: Ib322f1f9eeedd8e78c9a51a845a20c462442a0fe
diff --git a/commandline.cpp b/commandline.cpp
index 0c5be84..39fe3c4 100644
--- a/commandline.cpp
+++ b/commandline.cpp
@@ -1175,7 +1175,11 @@
 
     // Zipped bugreport option - will call 'bugreportz', which prints the location of the generated
     // file, then pull it to the destination file provided by the user.
-    const char* dest_file = argv[1];
+    std::string dest_file = argv[1];
+    if (!android::base::EndsWith(argv[1], ".zip")) {
+        // TODO: use a case-insensitive comparison (like EndsWithIgnoreCase
+        dest_file += ".zip";
+    }
     std::string output;
 
     int status = send_shell_command(transport_type, serial, "bugreportz", true, &output);
@@ -1185,9 +1189,9 @@
     if (android::base::StartsWith(output, BUGZ_OK_PREFIX)) {
         const char* zip_file = &output[strlen(BUGZ_OK_PREFIX)];
         std::vector<const char*> srcs{zip_file};
-        status = do_sync_pull(srcs, dest_file, true, dest_file) ? 0 : 1;
+        status = do_sync_pull(srcs, dest_file.c_str(), true, dest_file.c_str()) ? 0 : 1;
         if (status != 0) {
-            fprintf(stderr, "Could not copy file '%s' to '%s'\n", zip_file, dest_file);
+            fprintf(stderr, "Could not copy file '%s' to '%s'\n", zip_file, dest_file.c_str());
         }
         return status;
     }