minijail0_cli_unittest: fix random crashes/failures

The GNU getopt API cannot handle being passed different argv vectors
by default.  Changing optind back to 1 will trigger a reset of state,
but only relative to the previous argv getopt saw.  Instead, optind
has to be set to 0 so all internal state is reset.  This extension is
from GNU (glibc), but Android's bionic also supports it.

Otherwise, when we pass in a different argv, the internal state might
randomly refer to the old argv memory which in turn can lead to random
errors or memory violations.

Bug: None
Test: `./minijail0_cli_unittest --gtest_repeat=-1` no longer randomly crashes
Change-Id: I79276518bb51e297719049c7efa9824d6f97c7ab
diff --git a/minijail0_cli_unittest.cc b/minijail0_cli_unittest.cc
index a774d55..2427a01 100644
--- a/minijail0_cli_unittest.cc
+++ b/minijail0_cli_unittest.cc
@@ -42,8 +42,10 @@
   // as it parses things (which is normally permissible with argv).
   int parse_args_(const std::vector<std::string>& argv, int *exit_immediately,
                   ElfType *elftype) {
-    // Make sure we reset the getopts state when scanning a new argv.
-    optind = 1;
+    // Make sure we reset the getopts state when scanning a new argv.  Setting
+    // this to 0 is a GNU extension, but AOSP/BSD also checks this (as an alias
+    // to their "optreset").
+    optind = 0;
 
     std::vector<const char *> pargv;
     pargv.push_back("minijail0");