Merge "Fix bug #37284906, adb shell crashes on windows with invalid options. For example, "adb.exe shell -list" crashes without this fix. Test: adb.exe shell -list-packages" am: e275043d38
am: 4be54a4622

Change-Id: Ic0d75aae1405badc8021835df498bcdbe0130088
diff --git a/adb/commandline.cpp b/adb/commandline.cpp
index c9f1ee9..e465c3f 100644
--- a/adb/commandline.cpp
+++ b/adb/commandline.cpp
@@ -685,6 +685,10 @@
 
     // Parse shell-specific command-line options.
     argv[0] = "adb shell"; // So getopt(3) error messages start "adb shell".
+#ifdef _WIN32
+    // fixes "adb shell -l" crash on Windows, b/37284906
+    __argv = const_cast<char**>(argv);
+#endif
     optind = 1; // argv[0] is always "shell", so set `optind` appropriately.
     int opt;
     while ((opt = getopt(argc, const_cast<char**>(argv), "+e:ntTx")) != -1) {