svn commit: r326727 - head/usr.sbin/efibootmgr
Warner Losh
imp at FreeBSD.org
Sat Dec 9 07:43:56 UTC 2017
Author: imp
Date: Sat Dec 9 07:43:55 2017
New Revision: 326727
URL: https://svnweb.freebsd.org/changeset/base/326727
Log:
Remove vestiges of -d and -p commands.
Fix two core dumps when optional data isn't specified.
Sponsored by: Netflix
Modified:
head/usr.sbin/efibootmgr/efibootmgr.c
Modified: head/usr.sbin/efibootmgr/efibootmgr.c
==============================================================================
--- head/usr.sbin/efibootmgr/efibootmgr.c Sat Dec 9 06:57:19 2017 (r326726)
+++ head/usr.sbin/efibootmgr/efibootmgr.c Sat Dec 9 07:43:55 2017 (r326727)
@@ -69,7 +69,6 @@ __FBSDID("$FreeBSD$");
#define BAD_LENGTH ((size_t)-1)
typedef struct _bmgr_opts {
- char *dev;
char *env;
char *loader;
char *label;
@@ -84,7 +83,6 @@ typedef struct _bmgr_opts {
bool del_timeout;
bool dry_run;
bool once;
- int part;
int cp_src;
bool set_active;
bool set_bootnext;
@@ -194,7 +192,7 @@ parse_args(int argc, char *argv[])
{
int ch;
- while ((ch = getopt_long(argc, argv, "A:a:B:C:cDd:e:hk:L:l:Nn:Oo:p:Tt:v",
+ while ((ch = getopt_long(argc, argv, "A:a:B:C:cDe:hk:L:l:Nn:Oo:Tt:v",
lopts, NULL)) != -1) {
switch (ch) {
case 'A':
@@ -218,9 +216,6 @@ parse_args(int argc, char *argv[])
case 'D': /* should be remove dups XXX */
opts.dry_run = true;
break;
- case 'd':
- opts.dev = optarg;
- break;
case 'e':
opts.env = strdup(optarg);
break;
@@ -251,9 +246,6 @@ parse_args(int argc, char *argv[])
case 'o':
opts.order = strdup(optarg);
break;
- case 'p':
- opts.part = strtoul(optarg, NULL, 10);
- break;
case 'T':
opts.del_timeout = true;
break;
@@ -267,7 +259,7 @@ parse_args(int argc, char *argv[])
}
}
if (opts.create) {
- if (!(opts.loader && opts.dev && opts.part))
+ if (!opts.loader)
errx(1, "%s",CREATE_USAGE);
return;
}
@@ -598,7 +590,12 @@ create_loadopt(uint8_t *buf, size_t bufmax, uint32_t a
/*
* Compute the length to make sure the passed in buffer is long enough.
*/
- utf8_to_ucs2(description, &bbuf, &desc_len);
+ if (description)
+ utf8_to_ucs2(description, &bbuf, &desc_len);
+ else {
+ desc_len = 0;
+ bbuf = NULL;
+ }
len = sizeof(uint32_t) + sizeof(uint16_t) + desc_len + dp_size + optional_data_size;
if (len > bufmax) {
free(bbuf);
@@ -665,7 +662,7 @@ make_boot_var(const char *label, const char *loader, c
err(1, "malloc");
lopt_size = create_loadopt(load_opt_buf, MAX_LOADOPT_LEN, load_attrs,
- dp, llen + klen, label, env, strlen(env) + 1);
+ dp, llen + klen, label, env, env ? strlen(env) + 1 : 0);
if (lopt_size == BAD_LENGTH)
errx(1, "Can't crate loadopt");
More information about the svn-src-head
mailing list