summaryrefslogtreecommitdiffstats
path: root/misc-utils/getopt.c
diff options
context:
space:
mode:
authorSami Kerola2014-12-06 12:50:03 +0100
committerSami Kerola2014-12-08 21:07:01 +0100
commit05ac43f5f8ce008d4909e920aeecf5ecf06d620a (patch)
tree0d52236b4b0e66fadc98e62e3e45cc0e012b2cc2 /misc-utils/getopt.c
parentgetopt: add struct getopt_control and remove global variables (diff)
downloadkernel-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.c17
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++;
}
}