svc: fix a case where with more than option, getopt() state is not reset

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2017-08-05 01:38:55 +02:00
parent 4989d05174
commit 0b16a67959
1 changed files with 6 additions and 5 deletions

View File

@ -718,15 +718,16 @@ int svc_main(int argc UNUSED_PARAM, char **argv)
argv[1] = command;
command[1] = '\0';
/* getopt32() was already called:
* reset the libc getopt() function, which keeps internal state.
*/
GETOPT_RESET();
do {
if (opts & 1) {
int r;
command[0] = *optstring;
/* getopt() was already called by getopt32():
* reset the libc getopt() function's internal state.
*/
GETOPT_RESET();
r = sv(argv);
if (r)
return 1;