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) {