mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-28 20:43:45 +08:00
Fix memory leak in sim_parse_args
This commit is contained in:
parent
077b8428ab
commit
7c070881e4
@ -1,3 +1,8 @@
|
|||||||
|
2000-11-24 Stephane Carrez <Stephane.Carrez@worldnet.fr>
|
||||||
|
|
||||||
|
* sim-options.c (sim_parse_args): Free the memory used for
|
||||||
|
long_options, short_options, handlers, opt_cpu, orig_val.
|
||||||
|
|
||||||
2000-11-20 Ben Elliston <bje@redhat.com>
|
2000-11-20 Ben Elliston <bje@redhat.com>
|
||||||
|
|
||||||
* cgen-ops.h (SUBBI): New macro.
|
* cgen-ops.h (SUBBI): New macro.
|
||||||
|
@ -499,6 +499,7 @@ sim_parse_args (sd, argv)
|
|||||||
const OPTION *opt;
|
const OPTION *opt;
|
||||||
OPTION_HANDLER **handlers;
|
OPTION_HANDLER **handlers;
|
||||||
sim_cpu **opt_cpu;
|
sim_cpu **opt_cpu;
|
||||||
|
SIM_RC result = SIM_RC_OK;
|
||||||
|
|
||||||
/* Count the number of arguments. */
|
/* Count the number of arguments. */
|
||||||
for (argc = 0; argv[argc] != NULL; ++argc)
|
for (argc = 0; argv[argc] != NULL; ++argc)
|
||||||
@ -579,7 +580,8 @@ sim_parse_args (sd, argv)
|
|||||||
if (opt->shortopt != 0)
|
if (opt->shortopt != 0)
|
||||||
{
|
{
|
||||||
sim_io_eprintf (sd, "internal error, short cpu specific option");
|
sim_io_eprintf (sd, "internal error, short cpu specific option");
|
||||||
return SIM_RC_FAIL;
|
result = SIM_RC_FAIL;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
if (opt->opt.name != NULL)
|
if (opt->opt.name != NULL)
|
||||||
{
|
{
|
||||||
@ -617,13 +619,24 @@ sim_parse_args (sd, argv)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (optc == '?')
|
if (optc == '?')
|
||||||
return SIM_RC_FAIL;
|
{
|
||||||
|
result = SIM_RC_FAIL;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if ((*handlers[optc]) (sd, opt_cpu[optc], orig_val[optc], optarg, 0/*!is_command*/) == SIM_RC_FAIL)
|
if ((*handlers[optc]) (sd, opt_cpu[optc], orig_val[optc], optarg, 0/*!is_command*/) == SIM_RC_FAIL)
|
||||||
return SIM_RC_FAIL;
|
{
|
||||||
|
result = SIM_RC_FAIL;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return SIM_RC_OK;
|
zfree (long_options);
|
||||||
|
zfree (short_options);
|
||||||
|
zfree (handlers);
|
||||||
|
zfree (opt_cpu);
|
||||||
|
zfree (orig_val);
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Utility of sim_print_help to print a list of option tables. */
|
/* Utility of sim_print_help to print a list of option tables. */
|
||||||
|
Loading…
Reference in New Issue
Block a user