diff options
author | Sami Kerola | 2014-12-06 12:50:03 +0100 |
---|---|---|
committer | Sami Kerola | 2014-12-08 21:07:01 +0100 |
commit | 05ac43f5f8ce008d4909e920aeecf5ecf06d620a (patch) | |
tree | 0d52236b4b0e66fadc98e62e3e45cc0e012b2cc2 /misc-utils/getopt.c | |
parent | getopt: add struct getopt_control and remove global variables (diff) | |
download | kernel-qcow2-util-linux-05ac43f5f8ce008d4909e920aeecf5ecf06d620a.tar.gz kernel-qcow2-util-linux-05ac43f5f8ce008d4909e920aeecf5ecf06d620a.tar.xz kernel-qcow2-util-linux-05ac43f5f8ce008d4909e920aeecf5ecf06d620a.zip |
getopt: use xstrdup rather than malloc + strcpy
CC: Frodo Looijaard <frodo@frodo.looijaard.name>
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Diffstat (limited to 'misc-utils/getopt.c')
-rw-r--r-- | misc-utils/getopt.c | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/misc-utils/getopt.c b/misc-utils/getopt.c index fcc016c7d..4c92e306a 100644 --- a/misc-utils/getopt.c +++ b/misc-utils/getopt.c @@ -114,8 +114,7 @@ static const char *normalize(const struct getopt_control *ctl, const char *arg) if (!ctl->quote) { /* Just copy arg */ - BUFFER = xmalloc(strlen(arg) + 1); - strcpy(BUFFER, arg); + BUFFER = xstrdup(arg); return BUFFER; } @@ -233,7 +232,6 @@ static void __attribute__ ((__noreturn__)) parse_error(const char *message) /* Register a long option. The contents of name is copied. */ static void add_longopt(struct getopt_control *ctl, const char *name, int has_arg) { - char *tmp; static int flag; if (!name) { @@ -261,9 +259,7 @@ static void add_longopt(struct getopt_control *ctl, const char *name, int has_ar ctl->long_options[ctl->long_options_nr - 1].has_arg = has_arg; ctl->long_options[ctl->long_options_nr - 1].flag = &flag; ctl->long_options[ctl->long_options_nr - 1].val = ctl->long_options_nr; - tmp = xmalloc(strlen(name) + 1); - strcpy(tmp, name); - ctl->long_options[ctl->long_options_nr - 1].name = tmp; + ctl->long_options[ctl->long_options_nr - 1].name = xstrdup(name); } ctl->long_options_nr++; } @@ -407,16 +403,14 @@ int main(int argc, char *argv[]) print_help(); case 'o': free(ctl.optstr); - ctl.optstr = xmalloc(strlen(optarg) + 1); - strcpy(ctl.optstr, optarg); + ctl.optstr = xstrdup(optarg); break; case 'l': add_long_options(&ctl, optarg); break; case 'n': free(name); - name = xmalloc(strlen(optarg) + 1); - strcpy(name, optarg); + name = xstrdup(optarg); break; case 'q': ctl.quiet_errors = 1; @@ -446,8 +440,7 @@ int main(int argc, char *argv[]) if (optind >= argc) parse_error(_("missing optstring argument")); else { - ctl.optstr = xmalloc(strlen(argv[optind]) + 1); - strcpy(ctl.optstr, argv[optind]); + ctl.optstr = xstrdup(argv[optind]); optind++; } } |