Sync OpenBSD patchset 1150:

xfree is not particularly helpful, remove it. From Thomas Adam.
This commit is contained in:
Tiago Cunha
2012-07-11 19:34:16 +00:00
parent 06d27e94b2
commit a432fcd306
73 changed files with 330 additions and 360 deletions

View File

@ -68,15 +68,14 @@ args_parse(const char *template, int argc, char **argv)
if (opt < 0 || opt >= SCHAR_MAX)
continue;
if (opt == '?' || (ptr = strchr(template, opt)) == NULL) {
xfree(args->flags);
xfree(args);
free(args->flags);
free(args);
return (NULL);
}
bit_set(args->flags, opt);
if (ptr[1] == ':') {
if (args->values[opt] != NULL)
xfree(args->values[opt]);
free(args->values[opt]);
args->values[opt] = xstrdup(optarg);
}
}
@ -97,13 +96,11 @@ args_free(struct args *args)
cmd_free_argv(args->argc, args->argv);
for (i = 0; i < SCHAR_MAX; i++) {
if (args->values[i] != NULL)
xfree(args->values[i]);
}
for (i = 0; i < SCHAR_MAX; i++)
free(args->values[i]);
xfree(args->flags);
xfree(args);
free(args->flags);
free(args);
}
/* Print a set of arguments. */
@ -182,8 +179,7 @@ args_has(struct args *args, u_char ch)
void
args_set(struct args *args, u_char ch, const char *value)
{
if (args->values[ch] != NULL)
xfree(args->values[ch]);
free(args->values[ch]);
if (value != NULL)
args->values[ch] = xstrdup(value);
else