#include "argp.h"
#include "argp-fmtstream.h"
#include "argp-namefrob.h"
+
+#ifndef SIZE_MAX
+# define SIZE_MAX ((size_t) -1)
+#endif
\f
/* User-selectable (using an environment variable) formatting parameters.
{"no-parent", 'P', 0, 0, "Include processes without parents"},
{0, 'x', 0, OPTION_ALIAS},
{"all-fields",'Q', 0, 0, "Don't elide unusable fields (normally"
- " if there's some reason ps can't"
+ " if there's some reason ps can't"
" print a field for any process, it's"
- " removed from the output entirely)" },
+ " removed from the output entirely)" },
{"reverse", 'r', 0, 0, "Reverse the order of any sort"},
{"gratuitously-long-reverse-option", 0, 0, OPTION_ALIAS},
{"session", OPT_SESS, "SID", OPTION_ARG_OPTIONAL,
- "Add the processes from the session"
+ "Add the processes from the session"
" SID (which defaults to the sid of"
" the current process)" },
hol->entries = malloc (sizeof (struct hol_entry) * hol->num_entries);
hol->short_options = malloc (num_short_options + 1);
- assert (hol->entries && hol->short_options);
+ assert (hol->entries && hol->short_options
+ && hol->num_entries <= SIZE_MAX / sizeof (struct hol_entry));
/* Fill in the entries. */
so = hol->short_options;
char *short_options =
malloc (hol_so_len + strlen (more->short_options) + 1);
+ assert (entries && short_options
+ && num_entries <= SIZE_MAX / sizeof (struct hol_entry));
+
__mempcpy (__mempcpy (entries, hol->entries,
hol->num_entries * sizeof (struct hol_entry)),
more->entries,
__argp_fmtstream_putc (fs, '\n');
__argp_fmtstream_printf (fs, dgettext (argp->argp_domain,
"Report bugs to %s.\n"),
- argp_program_bug_address);
+ argp_program_bug_address);
anything = 1;
}