Always NULL terminate long option list.

This commit is contained in:
Andrew Cagney 2000-07-06 07:25:02 +00:00
parent 24ddb29628
commit beb2de9b61
2 changed files with 12 additions and 3 deletions

View file

@ -1,3 +1,7 @@
Thu Jul 6 17:20:58 2000 Andrew Cagney <cagney@b1.cygnus.com>
* as.c (parse_args): NULL terminate the long option list.
Tue Jul 4 14:08:28 2000 Andrew Cagney <cagney@b1.cygnus.com>
* config/tc-d30v.h: Include "write.h" for fixS.

View file

@ -425,13 +425,18 @@ parse_args (pargc, pargv)
{"fatal-warnings", no_argument, NULL, OPTION_WARN_FATAL}
};
/* Construct the option lists from the standard list and the
target dependent list. */
/* Construct the option lists from the standard list and the target
dependent list. Include space for an extra NULL option and
always NULL terminate. */
shortopts = concat (std_shortopts, md_shortopts, (char *) NULL);
longopts = (struct option *) xmalloc (sizeof (std_longopts) + md_longopts_size);
longopts = (struct option *) xmalloc (sizeof (std_longopts)
+ md_longopts_size
+ sizeof (struct option));
memcpy (longopts, std_longopts, sizeof (std_longopts));
memcpy ((char *) longopts + sizeof (std_longopts),
md_longopts, md_longopts_size);
memset ((char *) longopts + sizeof (std_longopts) + md_longopts_size,
0, sizeof (struct option));
/* Make a local copy of the old argv. */
old_argc = *pargc;